20230814巴蜀暑期集训测试总结

发布时间 2023-08-14 21:41:05作者: 牛肉爱吃dks

T2

考场一直卡在二进制思路里面,最后打了一个 \(O(n\max\{a_i\})\) 的方法,居然忘了继续向后跑 \(\log\) 位,挂掉 \(20pts\)(像这种情况全挂也是有可能的)。

我认为其实有的时候不要随便简化问题,或者说想多了也要及时回来(虽然这可能很不容易)。自己认为的简化不一定就把题目变简单了。像这道题本来停在二进制之前直接维护就是整解,而我却一路错过正解然后卡住,非常可惜。

T3

非常神秘的题。题面写的求第 \(k\) 大,我在考场看成了求第 \(k\) 小,结果其实题面错了,正确题面和数据都是求第 \(k\) 小。于是就是:我把题错读成对的了。

考场尽管题读“对”了,我也想不到怎么做,在一股神秘力量的驱使下打了一个一点正确性都没有的方法,小样例都过不了,但是,两个大样例都过了。当时时间快到了,干脆不打了,去检查其他题,结果竟然有 \(20pts\)

其实这题已经再暗示将每一行联系在一起考虑了。所以再说一遍:不要随便简化问题,抓住每一个特殊性质,问自己除了保证题目的可实现性以外,还有什么因素会使出题人这样要求。如这道题,每行二分不行,可以尝试均摊到每一行,只扫一遍。

T4

考场打的 \(O(n^2\log n)\) 的暴力。比较神奇的是,打 T3 那个没有正确性的方法的时候想到了用强制只删点的 \(O(1)\) 前驱后继,但这题没想到,不然就能到 \(O(n^2)\)\(40pts\)

要 A 这道题需要知道(推出)一个结论——对一个序列 \(a\),如果其排序后位等差数列,那么公差 \(d=\gcd_{i=2}^n|a_i-a_{i-1}|\)(update in 《一些tricks》)。考场我这第一步都没有推出来...

之后就是各种数据结构维护技巧了。