--------线性模方程
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj1158荒岛野人
正解:同余方程对于每对野人i,j,解方程(p[i]-p[j])=c[j]-c[i](mod Answer) 若在min(l[i],l[j])以内有解则不行(++ANS)否则可以#include#includeusing namespace std;int c[20],p[20],l[20],n,M;int extgcd(int a,int b,int& x,int& y){原创 2017-09-19 18:47:19 · 580 阅读 · 0 评论 -
扩展gcd以及同余方程ax=b(mod M)
关于扩展gcd其实没有必要搞懂,背下来就好了如果不会的自行学习对于方程ax=b(mod M),我们可以将其化简成为ax+My=b,让后用扩展gcd求解当b|r=gcd(a,M)时,方程有r个解,否则无解,对于有解的情况,每个解为用gcd求出的x乘上b/r+k*(M/r)int extgcd(int a,int b,int& x,int& y){ if(b){ int r=extg原创 2017-09-19 18:48:56 · 2041 阅读 · 0 评论 -
Jzoj1460 无题noname
给定一个N,求出所有1到N之间的x,使得x^2=1(mod N)。将这个式子变形(x-1)(x+1)=0(MOD P) ,那么就可以枚举P的每一对因数(a,b),我们把方程化为ax*by=P*T(T为任意常数)那么这里ax,by必须满足ax-by=2,这个可以用扩展gcd求解求出x,y后,我们将所有形如a*(x*(2/gcd)+k*(b/r))的解加入vector并排序输出(注原创 2017-09-20 19:34:15 · 307 阅读 · 0 评论 -
Jzoj2270 【SDOI2011】计算器
1、给定 y、z、p,计算y^z mod p的值; 2、给定 y、z、p,计算满足xy≡z(mod p)的最小非负整数 ; 3、给定y、z、p,计算满足y^x≡z(mod p)的最小非负整数 。第一问不说,第二问请看 同余方程 主要说第三问第三问是经典的离散对数(其实我并不会而且也基本不考)我们使用经典的giant-step-baby-step算法,令s=sqrt(m)原创 2017-09-20 20:06:42 · 240 阅读 · 0 评论 -
Jzoj4722 跳楼机
srwudi的跳楼机可以采用以下四种方式移动:1、向上移动x层;2、向上移动y层;3、向上移动z层;4、回到第一层。一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不大于h)。我们发现变量只有3个,所以必然考虑层数%x的情况,若第i层可达,则必然第i+kx层也可以到达原创 2017-10-15 17:30:36 · 542 阅读 · 0 评论 -
一些基础算法的模板(持续更新)
更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin原创 2017-10-25 22:05:58 · 3734 阅读 · 0 评论 -
Jzoj5449【NOIP2017提高A组冲刺11.4】Pacifist
papyrus 喜欢谜题... 来解一道如何?在你面前有一个被加密了的数组,其原数组是一个等差序列,你面前的则是将原数组中的所有数字都对m 取模再打乱后而得到的新数组papyrus 给你出的谜题就是还原出原等差序列a保证数据有解,而且因为papyrus 喜欢质数,所以他给你出的谜题中的m 一定是质数今天题目还挺好玩的,虽然第二题因为数据太多OJ最后挂了全场爆0但是还原创 2017-11-04 21:22:54 · 298 阅读 · 0 评论 -
51Nod1038 X^A Mod P
题目看这里 经典的n次剩余问题,用到很多数论知识点 1.扩展gcd 2.原根 3.离散对数 4.n次剩余 说一下这个算法的流程 首先,我们的方程为xn=a(mod m)xn=a(mod m)x^n=a(mod\ m) m为质数 那么,我们首先要找m的原根g,这里g要满足的性 质就是对于任意<fontsize=8>&lt原创 2018-08-02 09:54:28 · 339 阅读 · 0 评论