APIO2025 游记
游记
没什么好说的,不抱怨题,只能怪我。
集合幂级数还是听得津津有味。
后面讲解也去听了,就算我不是顶尖的,但是我愿意学习的态度也能让我成为次尖。
一些题解:
Rotation
代码好短,好耻辱。
两个棒垂直之后,和其他棒无关,于是找合适的办法尽量形成交叉。多个棒一起旋转的特性还用不上。
https://qoj.ac/submission/1077098
Hack
容易想到找到一个 \(n\) 的倍数,然后不断除(二分)每种质因子。
至于找到 \(n\) 倍数,需要找到一个一定会冲突的集合。我当时用生日悖论随,太劣,后来才知道可以用 BSGS 构造。
不论如何,找到之后,我考场进行了随机分开这个集合,递归下去,递归不了,就分成两个集合依次进行二分做。其实这个思路和正解很接近,但是最初的生成没有洞见,也是我这题最大的失误。
首先,这里只需要生成 \([5\times 10^8+1,10^9]\) 之间的数就可以。
其次,BSGS 天然已经分成两个集合,如果两个集合内部有碰撞,可以再用一次BSGS,快速做掉。
分完之后如果是 \(S,T\),先把 \(S\) 分成 \(S_1,S_2\),调用 \(collision(S1\cup T)\),给 \(S\) 合适的赋值。接着把 \(T\) 分成 \(T_1,T_2\),调用 \(collision(S\cup T_1)\),给 \(T\) 合适的赋值。发现最后的总代价大概是 \(2|S|+3|T|\)。
根据此可以提前调整 BSGS 的两个集合。
https://qoj.ac/submission/1098256
permgame
虽然很难,但是没有打出自己会的分还是很不应该。
好像场上是因为代码实现太烂,而且这题没有什么调试空间,加之没有看后面的部分分,一直卡在链导致的失误。
这启示我要看完整部分分,接受部分的失误。
赛后补到了 46 分,其实本来就会。
链就是把置换环拼起来,三元环就是分奇环,答案增加;看偶环,不动。
https://qoj.ac/submission/1098305
100+100+46,可以金的,就算第一题挂到 70,也是可以的。还是火候不够吧。

浙公网安备 33010602011771号