[2024.11.21]IOI 赛制练习赛
我爱IOI
赛时
虽然小 L 说题目按照字典序排列,但是我还是决定先看 T1。
由于是图论专场,所以我直接大胆对数据连边,然后胡了一个并查集,感觉很对。
但发现不太好维护当前状态如何插入新值,简单画了一会发现只需要维护一个 \(vis\) 数组并放到祖先那里,就可以维护能否操作了。
感觉可能也是大概按照难度排序,所以去看 T2,发现没有任何思路,然后就开始随机跳题。借助“题面越长越简单”定理我发现了 F 题。
题目上给那么多全是在掩饰,稍微想一想就能发现题目要求就是构造一个遍历顺序且无后效性,于是变成了拓扑板子。
挂了一发,但是IOI,并且拿下首 A。
去看最后一道题,\(n\le 400\) 的数据范围和只翻转一次让我意识到这道题可能是暴力,然后就开始写。
调了好久我才发现结构体存 set
重载运算符时需要把关系载全。
这一点很重要,因为之前从来没有注意过,会导致加边删边的时候无法准确查找元素位置导致出错。
开始写部分分,感觉 \(C_i=0\) 的部分可以优化最短路复杂度。开始写,调完以后发现 TLE 了。
感觉是卡常的问题,于是开始上随机化胡搞。
于是接下来的2h内我一个人贡献了48发提交,最高的一次成功冲到了第13个测试点,但是捆绑。
不知道哪里有问题,先跳了。
中间顺便看了看 T2,赌一把数据随机生成,但是显然赌错了。
一直到 12 点都没有任何进展。
吃饭,交流,意识到我那个部分分的复杂度不是 \(n\),而是 \(m\)。
顺便发现另一档一次操作不会影响最短路长度,所以可以用 Floyd 预处理,然后 \(\mathcal{O}(1)\) 计算影响。
最后一题另一档部分分的解法回来开始写,调了十几发以后调过了。
然后就睡觉了,睡醒发现比赛结束。
赛后
D 题可以通过构造质数序列的方法去跑欧拉路径。
E 题发转化过以后是个 2-sat,然后还需要用线段树优化一下建图%%%mmz
G 题可以构造一下最短路树,然后对树边和非树边分别考虑,可以降低复杂度。
这场提交了许多次,期间有好几次都是过了样例,这说明如果是OI赛时我可能会挂大分。
比赛中间的几道题都是远端评测的CF题,所以感觉提交什么的都很复杂,而且没有部分分,所以几乎没怎么去看。
但总的来说 IOI 还是挺好玩的。