" 题目链接 " Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们 ...
分类:
编程语言 时间:
2018-04-09 11:20:09
阅读次数:
193
给出两个整数a,b 扩展欧几里得可以求出gcd(a,b),并且能顺带算出一组特解(x,y), 使ax+by=gcd(a,b)。 其实扩展欧几里得算法就是收集辗转相除法中产生的式子,倒回去,可以得到ax+by=gcd(a,b)的整数解。 原理如下: 设a=r0,b=r1, 那么根据辗转相除法, r0= ...
分类:
其他好文 时间:
2018-04-07 22:41:56
阅读次数:
179
1、什么是逆元 当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法: 设c是b的逆元,则有b*c≡1(mod m); 则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m); 即a/b的模等于a*b的逆元的模; 2、求逆元的 ...
分类:
其他好文 时间:
2018-03-15 23:00:27
阅读次数:
260
扩展欧几里得算法 求逆元就不说了。 ax+by=c 这个怎么求,很好推。 设d=gcd(a,b) 满足d|c方程有解,否则无解。 扩展欧几里得求出来的解是 x是 ax+by=gcd(a,b)的解。 对于c的话只需要x*c/gcd(a,b)%(b/d)即可,因为b/d的剩余系更小。 为什么这样呢? 设 ...
分类:
其他好文 时间:
2018-03-08 00:13:23
阅读次数:
202
思路:枚举 a ,通过扩展欧几里得算法利用数列前两个值求 b ,排除非整数解的情况,判断该组 a,b 是否满足剩余序列,(注意必须判断整个序列,不能只判断前几个值,时间够用)。注意对于求出的 b 要模10001。(观察通解和b范围的关系) ...
分类:
其他好文 时间:
2018-03-05 22:22:26
阅读次数:
157
给你$a,b$,求$x,y$使得$xa+yb=gcd(a,b)$ 假设已经求出了$x,y$满足$xb+y(a\mod b)=gcd(a,b)$ $$ \begin{align} xb+y(a\mod b)&=gcd(a,b)\\ xb+y(a \lfloor\frac{a}{b}\rfloor b) ...
分类:
编程语言 时间:
2018-03-05 21:14:36
阅读次数:
165
"深入浅出乘法逆元" "1.模的运算律" "2.定义" "3.求解" "3.1费马小定理" "3.2扩展欧几里得算法" "3.3线性求解" 表格测试 ======= 深入浅出乘法逆元 模的运算律 先来一波模运算律表: 表格测试 ======= |运算律|内容|hijklkjlk| | | | | | ...
分类:
其他好文 时间:
2018-03-01 17:08:03
阅读次数:
164
在讲解扩展欧几里得之前我们先回顾下辗转相除法: $gcd(a,b)=gcd(b,a\%b)$当$a\%b==0$的时候b即为所求最大公约数 好了切入正题: 简单地来说exgcd函数求解的是$ax+by=gcd(a,b)$的最小正整数解。根据数论的相关知识,一定存在一组解$x,y$使得$ax+by=g ...
分类:
编程语言 时间:
2018-02-28 18:31:52
阅读次数:
184
证明链接:http://blog.csdn.net/lincifer/article/details/49391175 模板: ...
分类:
编程语言 时间:
2018-02-20 17:58:22
阅读次数:
218
扩展欧几里得算法 用途 当我们已知$a,b$ 扩展欧几里得算法可以求出满足$a*x+b*y=GCD(a,b)$的$(x,y)$解集 $GCD(a,b)$表示$a,b$的最大公约数 前导知识 $GCD(a,b)=GCD(b,a\%b)$ $GCD(a,0)=0$ $a\%b=a-a/b*b$ 推导过程 ...
分类:
编程语言 时间:
2018-02-02 20:17:51
阅读次数:
154