8:30–8:50 读题,T1 感觉是乱搞题,T2 貌似可以二分答案一下,T3 是个性质题。
8:50–10:00 T1,以前做过类似的题目,求平面最近点对,有随机旋转的乱搞做法,感觉可以套用,写完发现过不去,不过还有另一种分治做法,可以通过。
期间 T2 大改了几次题意,三次改动完全是三道题。
10:00–11:30 T2,二分答案然后贪心,可以每次暴力拓展,不过复杂度不太对,写了另一个较为优秀的二分做法,复杂度都是平方级别的。思考优化,不太好做。(数据水到平方暴力直接能过)
11:30–12:30 T3,有暴力 dp 。对于 n=2 特殊档可以按位贪心,分类讨论然后 dp 一下。不会拓展到 n 大于 2 情况。
T1:
耽误时间有点长。
有更靠谱的非随机分治做法就尽量不要花时间在不能保证通过的随机做法上。
luogu 上有类似的原题 最小三角形
T2:
正解非常神奇的题目。
考场上想到了不停二分做,但是暴力做的话,每次二分需要 O(n) 的 check ,直到划分为 K 段,那么复杂度是 nKlog 级别的。
正解非常神奇,考虑对于一段的划分,先 从小到大倍增 直到不能倍增为止,然后在二分。假设倍增到长度 len ,那么二分的范围就只需要在 O(len) 的范围内。 ∑O(len)=O(n)\sum O(len)=O(n)∑O(len)=O(n) ,于是总复杂度就降为 O(nlog) 级别 。
这个技巧学习一下。
题目
T3:
考场上想到了类似的贪心策略,不过为了保证正确套了一个 dp ,于是复杂度就只能做 n=2 了。
对于正解,经过分析发现不需要 dp ,直接贪心就是对的,于是就不需要设一堆状态 dp 了。
在没有进展的时候可以大胆的拍一下贪心的正确性。