提示一个卡常的关键点
查看原帖
提示一个卡常的关键点
1609773
wangxiaochai楼主2025/1/29 18:50

这题卡常。按照正常的 O(np)O(n*p)的解法,根据本题的数据范围,理论上也能出解。但我试了很多次,都无法通过(有 3 个点 T 了)。

后来思考优化方案时,发现题面

t替换为:(xt+y)modp将t 替换为: (x*t+y) mod p

无论 t 多大,也就是无论a[i]的值是多少,只要进行一次变化,就会小于 p,变化结果在 0~p-1 之间。如果a[i]的值本来就大于等于 p,那么永远无法回到自己。而小于 p 的情况,可以先预处理 0 变成 0 的次数,1 变成 1的次数,p-1 变成 p-1 的次数。

最后可以用 O(nq)O(n*q) 的复杂度通过。

2025/1/29 18:50
加载中...