GDKOI2021游记
Day0
期末考试的最后一天。
考完后有了一种整个人都放松了的感觉……
Day1
寒假第一天。破天荒地一直赖到起床铃响。
其实考场就在本校,不管从什么角度都不是游记呢……
权且当作在这个不算小的校园里游荡吧。
T3
发现字符串不会变,那么我们先马拉车一下。
还是不大好求。那么考虑二分。那么在([l+mid-1, r-mid+1])中查找回文长度最大的串判断即可。
T4
递推莫得前途,我们考虑生成函数。
然后熟练运用二次方程求根公式可以得到一个带根号的多项式。
接下来就是套路了。
套路
All in all
第一天发挥比较正常(?)
然后第二题想出来写炸了……
Day2
T1
套路期望题
套路*2
T2
题意转化后是一个线段覆盖最左端点问题。
一直在思考线段如何撤销,想了各种方法都没有思路……
比赛后同桌提醒我只要求没有被覆盖到的最右端点就行了……
我怕不是个智*
T4
原题说的是下滤,其实我们从小到大上滤也是可以的。
虽然我不会证就是了
然后发现每次上滤的点把堆分成了互不干扰不相交的两段。
在序列上一共会有(O(log_2 n))段,每段中我们查询最小值进行下一次上滤。
一共就是(O(n log_2^2 n))的
In a word
这一天感觉没有发挥太好,一道做过的套路题没有推出来,一道显然的简单题没有看出来。
总的来说时间分配不大合理,做过的题也没有好好总结。
Day3
Difficulty++
T1
套路是先分解质因数。
然而后面的按照不同质因数不同次数染色是我没想到的,贡献为那个质因数也是我没想到的。
然后考虑如何只算一次。
我们钦定相同颜色只算DFS序最小的。
疯狂分类讨论.jpg
T2
想到拆成前缀和。
然后考虑分治,发现前面与后面的贡献可以写作卷积形式,FFT (O(n log n cdot C))(C为巨大的常数)
然而需要一点平衡规划技巧,在区间足够小时直接暴力
所以我真正的考察点是平衡规划哒!
T3
游戏好评,考场上写了一个模拟玩了好久……
要注意到每个点被扩展到的方案数的奇偶性决定了这个点能否存活
然而讲题人太Rush了我没听清……
T4
组 合 题
前三个subtask都还好。
第四个先二分一个半径。
然后任取一个点将距离小于两倍半径的点分成同一块从原图中去除。重复以上步骤直至原图中没有点。
然后考虑K的限制。
如果一个块中有一个点能够换到另一个块里,那么从换入的块向换出的块连边,那么我们只要找一个从小于K的块出发到大于K的块的路径即可。
换完之后记得重构图……
注意以下两点
- 选出的中心两两之间距离大于两倍半径。
- 不存在两个选出的中心在最优方案中存在于同一个块。
即可说明正确性。
All in all
在题目偏难的情况下我这种暴力选手就有新生活的希望了(并没有
最后暴力写炸了好多……
实现能力有待提高。