思路:题意转化为求 (ax+by=dis) || (ax+cy=dis) || (bx+cy=dis) 三个式子有解时的最小|x| + |y|。显然求解特解x,y直接用扩展欧几里得,那么怎么求|x| + |y|?xy关系为一条直线,那么|x| + |y|应该是在x取0或者y取0的时候,但是要整数,所 ...
分类:
其他好文 时间:
2018-10-25 00:16:06
阅读次数:
160
本篇将附上扩展欧几里得算法的思想与推导; 对于一个方程$a x+b y=gcd(a,b)$来说,我们可以做如下的推导: 设有$a x_1+b y_1=gcd(a,b)$,同时我们有$b x_2+(a%b) y_2=gcd(b,a%b)$; 对于这个方程组,我们希望知道的是$x_1,x_2,y_1,y ...
分类:
编程语言 时间:
2018-10-19 19:21:05
阅读次数:
748
题目大意 给定整数 $n, k, l, r$,$1\le n, k \le 10^{11}$,$1\le l, r \le n$ 。 令 $ m = r l + 1$,若 $m \le 0$,$m\gets m + n$ 。 未知数 $x\in \mathbb{Z}$ 满足 $ 0 \le x \l ...
分类:
其他好文 时间:
2018-10-15 14:30:05
阅读次数:
232
关于扩展欧几里得定理 众所周知,扩展欧几里得定理是用来求形如(a,b,c皆为整数)这样的方程的一组解[注,仅是一组解]的定理 它的原理比较复杂,本人学了挺久才懂了一点,这里就不谈了,扩欧的核心是它的思想,它的思想可以用来解决许多题 该方程有解的条件 : 要使(a,b,c皆为整数) 有解,我们设k=g ...
分类:
其他好文 时间:
2018-10-13 22:46:37
阅读次数:
216
一、欧几里得算法(辗转相除法) 二、扩展欧几里得算法 在求a,b的gcd的同时求出一组特解 x,y满足方程 ax + by = gcd(a,b) 三、关于方程 ax + by = c 若gcd(a,b) | c,则方程有解,否则无解。 【解法】先运用扩展欧几里得算法求出ax + by = gcd(a ...
分类:
编程语言 时间:
2018-10-10 22:09:41
阅读次数:
246
当年没填起来的坑,迟早会再一次掉进去!!!想想还是将现在自己会用了的部分记录下来,以后再做补充。 欧几里得算法: 到目前为止也只是用来求一下两个整数的最大公约数(感觉又是一个巨大无比的坑)。暂时先把这个用法记下来吧。 扩展欧几里得算法: 同样为自己挖了一个巨大无比的坑,需要自己慢慢去填满;上代码吧还 ...
分类:
编程语言 时间:
2018-10-02 22:14:55
阅读次数:
277
扩展欧几里得求逆元:51nod1256 完。 ...
分类:
其他好文 时间:
2018-10-01 19:53:02
阅读次数:
132
"组合 FZU 2020" 题目描述 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数。例如C(5,2) = 10, C(4,2) = 6.可是当n,m比较大的时候,C(n,m)很大!于是xiaobo希望你输出 C(n,m) mod p的值! 分析 Lucas定理: 如果我们要求C(n ...
分类:
其他好文 时间:
2018-09-09 12:10:46
阅读次数:
159
Bezout定理: 对于任意整数a,b,存在一对整数x,y满足:a*x+b*y=gcd(a,b) 证明如下: 在欧几里得算法的最后一步:b=0,即:gcd(a,0)=a 对于b>0,根据欧几里得算法gcd(a,b)=gcd(b,a%b)。假设存在一对x,y满足:b*x+(a%b)*y=gcd(b,a ...
分类:
编程语言 时间:
2018-09-07 20:08:10
阅读次数:
199
https://zh.wikipedia.org/wiki/扩展欧几里得算法 用类似辗转相除法,求二元一次不定方程的整数解。 然后把它们改写成“余数等于”的形式 //式1 //式2 //式3 然后把它们“倒回去” //应用式3 //应用式2 //应用式1 得解 。 这个过程可以用矩阵表示(其中q表示 ...
分类:
编程语言 时间:
2018-08-29 20:02:08
阅读次数:
191