
同余方程
BSGS,同余方程,原根,二次剩余等
Happig丶
我的孤独,虽败犹荣
展开
-
HDU - 6755 Fibonacci Sum(斐波那契+二次剩余+二项式定理)
传送门对于斐波那契问题,一般想到的解法是递推或者矩阵快速幂,但是本题数据非常之大,怎么做都超时,临时想了一下斐波那契的公式,觉得这个浮点误差很大没法写,实际上可以写但是要用到很多知识,本题的总结收获不少(唯一难受的是代码优化能做的都做了自己写的还是超时)首先给出斐波那契数列的公式:F(n)=15[(1+52)n−(1−52)n]F(n)=\frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]F(n)=51[(21原创 2020-07-25 21:20:38 · 431 阅读 · 0 评论 -
二次剩余和二次同余方程
概念二次同余方程x2≡n(mod p)x^2\equiv n(mod~~p)x2≡n(mod p),其中n,pn,pn,p已知且互质且ppp为奇质数,求xxx这样的二次同余方程若有解,则称nnn是模ppp的二次剩余,同时xxx为该二次同余方程的解实际上二次同余方程也在解决x≡n(mod p)\sqrt{x} \equiv n(mod~~p)x≡n(mod p),意为如果该二次同余方程有解,那么nnn可以在模ppp原创 2020-09-15 15:05:21 · 1256 阅读 · 1 评论 -
2017四川省赛K - 2017 Revenge(原根+DP+bitset)[待补]
传送门题目大意给出n≤2e6n\leq 2e^6n≤2e6个数且范围是[1,2016][1,2016][1,2016],从中选出若干个数相乘使得二者的乘积对2017取模为rrr,求方案数的奇偶性解题思路之前见过相加问最后取模能否得到的一道题:传送门但是这道题是相乘的,根据DPDPDP的思路,不难得出设d[0/1][j]d[0/1][j]d[0/1][j]为考虑第iii个数且取模后结果为j(0≤j≤2016j(0 \leq j \leq 2016j(0≤j≤2016得到的方案数,那么代码如下:d原创 2020-10-14 17:11:56 · 318 阅读 · 0 评论 -
N次剩余
问题引入求解xa≡b(mod m)x^a \equiv b(mod~~m)xa≡b(mod m)。离散对数离散对数是基于同余运算和原根的对数运算,当模mmm有原根时,设ggg为其中一个原根,则当x≡gk(mod m)x \equiv g^k(mod~~m)x≡gk(mod m)时,可以对两边求对数,这样问题变成了loggx≡k(mod φ(m))log_gx \equiv k(mod~~\va原创 2020-10-14 12:20:31 · 396 阅读 · 0 评论 -
BSGS及扩展
BSGS问题引入求解ax≡b(mod p),gcd(a,p)=1a^x \equiv b(mod~~p), gcd(a,p)=1ax≡b(mod p),gcd(a,p)=1,其中方程的解满足0≤x<p0\leq x <p0≤x<p。算法思想令x=A⌈p⌉−Bx=A\lceil \sqrt{p}\rceil-Bx=A⌈p⌉−B,其中0≤A,B<⌈p⌉0 \leq A,B < \lceil \sqrt{p}\rceil0≤A,B原创 2020-10-14 07:40:30 · 163 阅读 · 0 评论 -
原根
阶定义:设m>1,(a,m)=1m>1,(a,m)=1m>1,(a,m)=1,使得al≡1(mod m)a^l \equiv 1(mod~~m)al≡1(mod m)成立的最小lll,称为aaa对模ppp的阶,记做δm(a)\delta_m(a)δm(a)。定理:若an≡1(mod m),m>1,(a,m)=1a^n \equiv 1(mod~~m),m>1,(a,m)=1an≡1(mod &nb原创 2020-10-13 09:45:28 · 189 阅读 · 0 评论 -
Pohlig-Hellman算法
问题引入求ax≡b(mod p),p≤1018a^x \equiv b(mod~~p),p\leq10^{18}ax≡b(mod p),p≤1018的最小正整数解模板namespace PhoRho { //Phollard-Rho ll gcd(ll a, ll b) { if (b == 0) return a; return gcd(b, a % b); } ll fastpow(ll x, l原创 2020-10-14 17:51:56 · 1613 阅读 · 0 评论