省流
有效时长 \(150min\),打出银尾。
10.29
内含剧透,请vp后再来。
不是题解!!!!!!!
赛时
比赛开始,光速有人通过 I 题,我和 qwsxza 就去看。题目给了一个字符串,要求修改其中一些字符,使新字符串左移任意位后仍回文,问最少修改多少字符。由于其他队伍过的很快,我直接猜了结论是要把整个串变得全部都一样,立刻上机码完通过。
然后 qwsxza 身体不适,我和 chumeng 跟榜看了 G 题。题目给了一个操作序列,第一种操作是增加一个人的值为 \(1\),第二个操作是合并任意两人的值后删掉其中一个人,要求至少有两个人才能进行。序列中有的地方两种操作都可以执行,问最后所有人的平均值最大是多少。中间有一点跑偏到二分上,但贪心的结论也同时在想没有丢掉。第一个操作相当于给分子和分母同加 \(1\),第二个是给分母减少 \(1\),显然要尽量多做第二个操作。由于我们不关心操作的具体顺序,只需要保证中间的分母始终不是零即可,所以用一个反悔贪心就行,当发现一个操作二不能用时就把一个前面的任意操作选择二的修改为选择一。
然后跟榜开了 A D M 题,我和 chumeng 感觉都不是那么可做,然后 qwsxza 回归给我们选了一题 A 开始做。A 题给了一个充满袋鼠的矩形和一个上下左右移动的序列,所有袋鼠会根据序列移动。矩形中还有一个坑,走到坑上的袋鼠或走到边界外的袋鼠会消失,最后恰好剩下 \(k\) 只袋鼠,问坑的位置的可能有多少种。
我想到可以把袋鼠的移动转化为坑的移动,然后 chumeng 紧接着说边界也会和坑一样移动,所以一定是要先动边界,得到一个如果没有坑的袋鼠矩形。然后我试着做一些根号的推导,证明暴力的复杂度可以通过,但失败了。qwsxza 提出坑的移动可以视作一个图案,然后用袋鼠矩形去和坑图案求交集,我恍然大悟,坑图案可以用一个包含了差分的矩形表示,这样用二维前缀和就可以和袋鼠矩阵求相交数量了。于是上机开码,他们则是去开 D。
我 A 挂了,他们上机 D 并通过了。
我发现是我的遍历只用了袋鼠矩阵的右下角遍历坑矩阵的每个格子,但是会出现坑矩阵小于袋鼠矩阵,袋鼠矩阵的右下角可以在坑矩阵以外的位置。于是把遍历的大小改为了袋鼠矩阵的长宽加坑矩阵的长宽。又挂了。
查了一下发现是袋鼠矩阵和坑矩阵的大小相加后可能会超出原来的矩阵大小,所以要特判一下是否出界,终于通过。
此时 \(4t\) 罚时 \(468\),我偷窥了一下榜已经银牌,而且 chumeng 要求加吃,我们的 M 题就随便提了一点想法就结束了比赛。
赛后
M 题是给出了一个多边形的水箱,要求在水箱的给定的点上开一些口使所有水可以流出,问最少要开几个口,每个点按逆时针顺序给出。容易发现有可能开口的地方是两边高中间低的 V 字形或 U 字形,分别讨论。
对于 V 字形,由于按逆时针顺序给出,可以发现 V 的两条边的向量应该是向左拐为一个山谷需要开口,向右拐为一个天花板上的尖刺不需要开口,那么利用叉积可以判断两个向量是向左拐还是向右拐,比较 \(x_1 \times y_2\) 和 \(x_2 \times y_1\) 即可。
对于 U 字形,同样是要两边比中间的一条横线高,而和上面类似,逆时针遍历后天花板一定是从右向左,底部是从左向右,检查横线的两段的 \(x\) 的位置即可。
2025年9月24日