简单的扩展欧几里得题这里 2^k 不能自作聪明的用 1= 31时就爆int了 , 即使定义为long long 也不能直接这样写后来老老实实 for(int i=1 ; i 2 #include 3 4 using namespace std; 5 #define ll long long 6 .....
分类:
其他好文 时间:
2015-01-17 16:27:56
阅读次数:
149
题意:
在while(x=a;x!=b;x+=c) statement;中,问statement会被执行多少次,计算在2^k下进行。
思路:
等价于计算同余式a+c*x=b(mod2^k)用扩展欧几里得算法。设g=gcd(a,b)在计算a*x+b*y=g过程中,x的结果可以用b/g调整,y的结果可以用a/g调整,因为a*(b/g)==b*(a/g)。
代码:
//poj 2115
//s...
分类:
其他好文 时间:
2014-12-26 20:23:01
阅读次数:
256
题目链接:点击打开链接
题意:给出x, k 求 方程 p*floor(x/k)+q*ceil(x/k)=x的一个解。floor()为向上取整,ceil()为向下取整。
赤裸裸的扩展gcd,题目中没说无解的情况,应该是默认 x%gcd(floor(x/k),ceil(x/k))==0
对于扩展gcd,ax+by=d ① ,当d为g=gcd(a,b)的倍数时,方程①有解,转化为求 ax+by=...
分类:
其他好文 时间:
2014-12-21 20:46:00
阅读次数:
194
题意:给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T)给出T和奇数项xi,输出偶数项xi分析:最简单的办法就是直接枚举a、b,看看与输入是否相符。 1 #include 2 3 const int maxn = 100.....
分类:
其他好文 时间:
2014-12-14 07:03:36
阅读次数:
168
欧几里得算法,即辗转相除法,用于求整数a,b的最大公约数。
欧几里得算法C++实现代码:(无需确定 a,b 大小关系)
long long gcd(long long a,long long b){
return b?gcd(b,a%b):a;
}
扩展欧几里得算法:设a和b不全为0,则存在整数x和y,使得 gcd(a,b) = xa + yb
证明: 假设 a...
分类:
编程语言 时间:
2014-12-02 13:36:53
阅读次数:
193
【题意描述】给定这样一个表达式:X1/X2/X3/·····/Xk,其中Xi是正整数。除法表达式应到按照从左到右的顺序求和。但在表达式中嵌入括号可以改变计算顺序。输入表达式,判断是否可以通过加括号使得表达式最后的值为整数。【分析】表达式可以写成E=(X1·X3·····Xk)/X2;(X1一定在分子...
分类:
编程语言 时间:
2014-11-20 06:45:45
阅读次数:
127
思路:a/b=x; a=b*x; b*x-9973*y=n; 用扩展欧几里得;对于等式ax+by=c,abc皆为整数且c是gcd(a, b)的倍数,且(x1, y1)是方程ax+by=gcd(a, b)一组整数解,则(x1*(c/gcd(a, b)), y1*(c/gcd(a, b)))是方程ax+...
分类:
其他好文 时间:
2014-11-19 17:56:09
阅读次数:
157
转载自:http://blog.csdn.net/acdreamers/article/details/8220787今天我们来探讨逆元在ACM-ICPC竞赛中的应用,逆元是一个很重要的概念,必须学会使用它。对于正整数和,如果有,那么把这个同余方程中的最小正整数解叫做模的逆元。逆元一般用扩展欧几里得...
分类:
其他好文 时间:
2014-11-19 00:23:52
阅读次数:
291
由于今天上午在做数论知识的笔记,发现那时候赵老师讲的线性丢番图(求ax+by=c的特解)部分完全搞不懂,后来网上查了一下才发现这个公式就是求同余方程,所用方法就是扩展欧几里得算法。正好红皮书上有这么一个模板,直接敲了下来然后稍作修改。后来发现POJ上的1061题就是这样一个类型,用了三个小时,荒.....
分类:
其他好文 时间:
2014-11-18 06:52:37
阅读次数:
169
最近的密码学实验,要求模逆,以前都没认真的研究过扩展的欧几里得算法,就趁着这个机会,把扩展的欧几里得算法好好的研究了一番;
扩展的欧几里得算法的应用范围也很广泛:1.可以用来求解不定方程的解。2.可以用来求解模线性方程(线性同余方程)3.求解模的逆元。
由这个名称我们就可以得知,这个算法是对欧几里得算法的扩展,欧几里得算法是求两个数的最大公约数,而扩展的算法就是对上面式子的x,y进行求解。
...
分类:
编程语言 时间:
2014-11-15 17:11:35
阅读次数:
225