时间安排
7:30–7:40 读题,T1 又是一个知道策略就 A 不知道一分都拿不到的题,T2,T3不知道是啥东西。一眼看过去没啥可写的。
7:40–8:50 T1,题目要求对于所有情况求答案和,那么要知道假设情况固定时如何得到答案。有几个贪心,不过都不对。
8:50–9:20 T1,看样例,突然发现答案好像是连续的 1 的段数,写完验证一下发现过不了大样例。意识到情况貌似更复杂,某一位多出来的数可以进位给高位贡献。
9:20–10:00 T2,可以发现融化的浮冰呈几个矩形,不过矩形交界处也可以融化,比较复杂先写个暴力。对于随机的当瞎写个贪心。T3 ,一眼看过去竟不知道怎么写暴力。有一个暴力枚举方向的想法不过一分都拿不到。
10:00–11:30
T1 ,考虑如果值域只有 1,0 那么答案就是连续段的数量,然后值域再大些,考虑多出来的数怎么用,考虑可以填上一些 0 使得一些 1 的段合并,写个 dfs 发现不对。发现有时候一些 0 根本填不完于是可以先 check 一下能不能填完再填,发现也不对。考虑是不是遇到 1 能补则补,把奇数多出来的偶数部分进位上去,发现也不对,觉得假了然后开始胡思乱想。半天没什么更对的想法。
看到有 10 分的手玩打表分就写了,然后没写 printf 没输出,于是就 0 了。
11:30–12:00 以一种非常奇怪的心态看T3,写了个退火,啥都退不出来。
回顾反思
T1:
最后想的策略和正解几乎没差,但漏掉了奇数本身的那个 1 以及自己操作加的 1 贡献,于是过不掉样例。然后各种乱试都不对就开始胡思乱想了。
没这个就只能拿个 10 分的打表分。但是因为到后面有点爆炸于是忘写了 printf 没有输出。
如果有了这个那么 dp 就是简单的,再不济也能拿个 80 分。
T2:
赛时观察到浮冰融化呈矩形,以及一个点变成浮冰意味着某个角的方向都是浮冰。正解将两者结合拓展了一下。
一个独立的块,两个对角融化,那么剩下两个对角独立成为子问题。
于是就可以 dp 了。
T3:
首先观察到题目要求的实际上是不越过任何一个点的最大矩形。
那么枚举一个边界,另一边可以利用 set 或者单调栈之类得到 n^2(log) 的做法,就有 30 分了。
正解就是利用分治、决策单调性之类的进一步拓展。
T1是简单的,后两题即使只写部分分也有一定分数。不过我 T1 一直没观察出来然后就抱着一种非常完蛋的心态,后两题几乎没怎么想比赛就结束了。
心态还是很重要。
策略、性质、观察这一块总是缺一点灵感,或者说稍微弱一点。
可以做一点非常智慧的题目。