2025/07/21 东师

BSGS
比起一个算法,它更类似一种思想,或者说是根号分治
普通BSGS
当我们想要求离散对数时有:
其中 \(b<m\),我们可以枚举所有 \(na^b \% P\) 塞到一个哈希表里,用所有 \(a^{km}\) 去查,注意到是根号平衡的,所以复杂度根号。
exBSGS
如果 \(a\) 与 \(P\) 不互质呢?尝试转化成 \(a\) 与 \(P\) 互质情况,关于同余,我们有一些式子:
所以可以通过不断对 \(n\) 与 \(P\) 除去 \(gcd(a,P)\) ,来使得做成普通 \(BSGS\)
P12541
怎么判定 \([l,r]\) 中有没有 \(n\) 的倍数?
取 \(C= r−l+1\) ,构造序列 \([1,2,⋯,C,l+C,l+2C,⋯,r+1]\),根据其返回值是否为零即可判定 \([l,r]\) 中有没有 \(n\) 的倍数。
因为如果发生哈希冲突,那么 \([1,r-l+1]\) 肯定有 \(n\) 的倍数,那么 \([l,r]\) 中也必有
用这个二分,你发现会略超出一些答案,这时候可以调整二分下界为 \(5\times 10^8\) 解决,因为所有数都有一个在新二分区间里的倍数。
Miller-Rabin & Pollard-Rho
Miller-Rabin
我们先考虑高斯定理,\(a^{p-1} \equiv 1 \pmod p\)
我们能否能直接用他反过来判断 \(p\) 是否为素数,不行,因为有的数并不成立。
但我们可以通过平方差公式把 \(n-1\) 拆小成 \(2\) 的幂次和别人的积,对于每个二的幂次的积用一些特定底数 \(a\) 判断。
Pollard-Rho
基于生日悖论,待学
容斥
单位根反演
todo
minmax容斥
我们可以有第 \(k\) 项的 \(max\) 的式子
重要问题是这个对期望同样适用,有一些 \(max\) 求期望很难的题,可以用 \(min\) 做,下面便是例题
重返现世
发现是第 \(k\) 的 \(max\) ,直接容斥为 \(min\)
推 \(dp\) 式子,发现这个状态数量就爆了,直接乘系数肯定破产了 (如果要状态数对必然丢信息)
那么我们不妨直接把 \(dp\) 状态设置为组合数的系数,这样根据数据范围就对了
后面to do

浙公网安备 33010602011771号