摘要:
VII.exBSGS(扩展大步小步算法) 同理,exBSGS适用于 \(a^x\equiv b\pmod p\) 的情形。只不过,这里不再要求 \(a\perp p\)(这里 \(\perp\) 符号表示互质)。 若 \(\gcd(a,p)\neq1\),则记其为 \(d_1\),显然 \(a\) 阅读全文
posted @ 2021-04-06 11:10
Troverld
阅读(165)
评论(0)
推荐(0)
摘要:
VI.BSGS(大步小步算法) 欢迎来到 北上广深 拔山盖世 比赛搞事 不算个事 算法学习现场。 BSGS,全名 Baby Step Giant Step 算法,是用于求解 \(a^x\equiv b\pmod p\),其中 \(\gcd(a,p)=0\) 的算法。 我们记 \(K=\sqrt{p} 阅读全文
posted @ 2021-04-06 11:08
Troverld
阅读(114)
评论(0)
推荐(0)
摘要:
V.阶与原根 实际上这部分内容在OI中应用很少,但它是一些重要思想以及算法的基础。 阶是在互质数 \((a,m)\) 间的定义:满足 \(a^n\equiv1\pmod m\) 的最小 \(n\) 被称作 \(a\) 模 \(m\) 的阶,记作 \(\delta_m(a)\)。 明显,在 \(a,m 阅读全文
posted @ 2021-04-06 11:06
Troverld
阅读(391)
评论(0)
推荐(0)
摘要:
IV.exLucas(扩展卢卡斯定理) 虽然是这个名字,但是它跟常规卢卡斯没有半毛钱关系 exLucas也是用来计算 \(\dbinom nm\bmod p\) 的。不同于普通Lucas,这里的 \(p\) 可以不为质数。 对于不为质数的模数,一个常规的想法是对其分解质因数,然后考虑其对于每个质数的 阅读全文
posted @ 2021-04-06 11:04
Troverld
阅读(247)
评论(0)
推荐(0)
摘要:
III.Lucas(卢卡斯定理) Lucas定理: \(\boxed{\dbinom nm\equiv\dbinom{n\bmod p}{m\bmod p}\times\dbinom{n/p}{m/p}\pmod p}\) 该式子仅适用于 \(p\) 为质数的情形。 证明: 首先,对于 \(i\in 阅读全文
posted @ 2021-04-06 11:02
Troverld
阅读(157)
评论(0)
推荐(0)
摘要:
II.exCRT(扩展中国剩余定理) 上文我们说到,CRT仅适用于 \(m\) 两两互质的情形。那如果不保证这一限制,明显原方程是仍然有解的,如何求解呢? 在上文的最后,我们成功将三个式的方程消到了两个,在这里能否继续? 我们考虑这个式子: \(x=a+\alpha A=b+\beta B\) 其等 阅读全文
posted @ 2021-04-06 11:01
Troverld
阅读(102)
评论(0)
推荐(0)
摘要:
I.CRT(中国剩余定理) 中国剩余定理: 已知方程 \(\begin{cases}x\equiv a_1\pmod{m_1}\\\vdots\\x\equiv a_n\pmod{m_n}\end{cases}\) 则我们设$M=\prod\limits_nm_i,M_i=\dfrac,b_i=(M 阅读全文
posted @ 2021-04-06 10:59
Troverld
阅读(101)
评论(0)
推荐(0)
摘要:
V.III.[CTSC2018]混合果汁 二话不说先套个整体二分。 但是这题整体二分与先前两道题有所区别——前面两道题,当二分到区间 \([l,r]\) 时,只需管 \([l,r]\) 中的元素就行了,对于 \(mid\) 不合法的询问直接减去这一段的询问的结果就行了; 但是,本题就不一样了:随着美 阅读全文
posted @ 2021-04-06 10:56
Troverld
阅读(136)
评论(0)
推荐(0)
摘要:
V.II.[国家集训]矩阵乘法 整体二分,然后套上二维BIT统计就行了。 需要注意的是整体二分时,要注意哪里是“编号”,哪里不是!(放在代码中就是哪里的东西外面要套上一层 p[]) 时间复杂度 \(O(m\log m\log^2n)\)。 代码: #include<bits/stdc++.h> us 阅读全文
posted @ 2021-04-06 10:54
Troverld
阅读(83)
评论(0)
推荐(0)
摘要:
V.I.[POI2011]MET-Meteors 套上整体二分,然后用BIT统计区间里每个国家收到多少陨石就行了。 听说有人还有用线段树上二分之类奇怪的东西,但是真的没有必要。 时间复杂度 \(O(n\log^2n)\)。 代码: #include<bits/stdc++.h> using name 阅读全文
posted @ 2021-04-06 10:52
Troverld
阅读(78)
评论(0)
推荐(0)

浙公网安备 33010602011771号