时间安排
7:30–7:40 读题,T1 貌似模拟一下就行了,T2,T3,T4 不知道是个啥
7:40–9:00 T1,简单模拟。T4,发现对于暴力可以维护并查集做,那么对于正解可以维护其所在连通块编号的 hash 值,启发式合并一下就行了。
9:00–10:40 T2,对于 r<=20 有状压暴力,对于特殊档可以把树建出来。写完发现有些情况没考虑到,调试调试。对于正解,发现第一问可以直接差分约束,然后可以得到一个构造,问题在于这个构造最后可能会多出来一些东西,不会删。
10:40–11:40 T3, k=0 是送分的。考虑怎么暴力,发现不会暴力。二分答案时显然的,问题是每次二分如何计算答案,无奈写了个二分 + 乱搞。发现问题等价于 0 1 段的覆盖,不会。
回顾反思
T2:
赛时想到了差分约束,但不会去除构造中多余的元素。分析容易发现取最小的大于每个区间左端点的值就可以了。分析性质的能力还是要加强。
另一方面前面的部分分耽误时间太长了,有一部分是码之前没有考虑完全导致的。动手一定要想清楚。
T3:
二分答案是显然的。
有性质,必然存在一个最优解使得每次的操作区间呈互相包含的关系,于是就可以设第 t 次操作以 r 为右端点最大的左端点是 dp t,r之类的暴力 dp 。
对于一个 0,1 序列,每次选取一个 1 的个数大于 0 的个数的区间全部赋为 1 ,直到全 1 ,所用次数是 log 级别的。
比赛的时候没有想到区间包含的性质,于是就没法做下去了。
对于正解还不太会。