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,也是可以的。还是火候不够吧。

posted @ 2025-06-09 00:04  妖灵梦  阅读(23)  评论(0)    收藏  举报