void exgcd(ll a,ll b,ll &x,ll &y) { if(b==0){x=1;y=0;return;} exgcd(b,a%b,x,y); ll t=x;x=y;y=t-a/b*y; } ...
分类:
编程语言 时间:
2017-12-10 14:25:48
阅读次数:
164
------------------------------ ...
分类:
编程语言 时间:
2017-11-29 10:22:28
阅读次数:
196
欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a ...
分类:
编程语言 时间:
2017-11-19 19:46:24
阅读次数:
202
欧几里得算法,即辗转相除法求最大公约数 1.循环: int gcd(int a,int b) { if(a < b) swap(a,b); while(a%b != 0) { int t = a%b; a = b; b = t; } return b; } 2.递归: int gcd(int a,i ...
分类:
编程语言 时间:
2017-11-19 19:46:07
阅读次数:
180
用途 当我们已知$(a,b)$ 扩展欧几里得算法可以求出满足$p*a+q*b=GCD(a,b)$的$(p,q)$解集 $GCD(a,b)$表示$a,b$的最大公约数 前导知识 $GCD(a,b)=GCD(b,a\%b)$ $GCD(a,0)=0$ $a\%b=a-a/b*b$ 推导过程 其实扩展欧几 ...
分类:
编程语言 时间:
2017-11-19 18:49:57
阅读次数:
179
一般: 1. 思路清晰,简化流程。 2. 数组访问: 高位数组寻址优化。 访问的内存尽量连续。 3. 少用除法、取模。 4. 重复运算,存入临时变量。 5. 循环展开,刺激 CPU 并行。展开次数过多,性能会下降,因为寄存器不够用。 6. 读入优化,输出优化。 分块: 1. 调整块大小。 FFT: ...
分类:
其他好文 时间:
2017-11-18 17:33:13
阅读次数:
131
http://172.20.6.3/Problem_Show.asp?id=1372 想法其实很好想,但是我扩展欧几里得还是用得不熟练,几乎是硬套模板,大概因为今天一个下午状态都不大好。扩展欧几里得算法计算的是 : ab互质时ax+by=1或ab不互质时ax+by=gcd(a,b)(废话)的一个整数 ...
分类:
其他好文 时间:
2017-11-05 19:17:42
阅读次数:
108
Solutions to an Equation LightOJ - 1306 一个基础的扩展欧几里得算法的应用。 解方程ax+by=c时,基本就是先记录下a和b的符号fla和flb(a为正则fla为1,为负则fla为-1,flb相同),然后对a和b取绝对值。求出ax+by=gcd(a,b)的一组解 ...
分类:
其他好文 时间:
2017-10-30 14:26:19
阅读次数:
170
扩展欧几里德算法 基本算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。 证明:设 a>b。 1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0; 2,ab!=0 时 设 ax1+by1=... ...
分类:
编程语言 时间:
2017-10-11 21:47:49
阅读次数:
162
看数论看得头皮发麻,o(╥﹏╥)o,总算理解了一些东西。(推荐一个dalao博客,个人感觉他的博客易懂点,可能是那些颜文字的作用(逃...)) 在看逆元之前我们先来看个同余方程的定理吧 同余定理:a和b取余p得到相同的余数,a≡b(mod p) 等价于 (a-b)/p得到一个整数。(其实个人感觉写成 ...
分类:
编程语言 时间:
2017-10-11 00:37:02
阅读次数:
234