hihocoder 1297 : 数论四·扩展欧几里德
来源:互联网 发布:apache 支持cgi 配置 编辑:程序博客网 时间:2024/06/06 05:09
线性同余方程求解,可以把同余方程转化成线性丢番图方程,根据扩展欧几里德算法求出一组特解,然后再求出最小正整数解。
#include <iostream>#include <algorithm>using namespace std;typedef long long LL;LL s1,s2,v1,v2,m;long long extend_gcd(long long a,long long b,long long &x,long long &y){ if(a==0&&b==0) return -1;//无最大公约数 if(b==0) { x=1; y=0; return a; } long long d=extend_gcd(b,a%b,y,x); y-=a/b*x; return d;}int main(){ ios::sync_with_stdio(false); cin.tie(0); cin >> s1 >> s2 >> v1 >> v2 >> m; LL A,B,C; A = v1-v2; B = m; C = s2 - s1; LL gcd = __gcd(A,B); if(C%gcd || v1 == v2) { cout << "-1" << endl; return 0; } LL x,y; LL d = extend_gcd(A,B,x,y); x = x*(C/d); LL mod = abs(B/d); x = (x%mod + mod)%mod; cout << x << endl; return 0;}
阅读全文
0 0
- hihocoder 1297 : 数论四·扩展欧几里德
- hihocoder 1297 : 数论四·扩展欧几里德
- hihocoder 数论四·扩展欧几里德
- hihocoder 1297 数论四·扩展欧几里德(exgcd)
- HIHO #1297 : 数论四·扩展欧几里德
- hiho第九十五周 数论四·扩展欧几里德
- 数论/扩展欧几里德算法
- 扩展欧几里德---数论
- hiho 1297 数论四·扩展欧几里得
- hihoCoder 1297 扩展欧几里德 && POJ 1061 青蛙的约会
- 【数论】[总结]扩展欧几里德算法
- 数论初步之扩展欧几里德
- 初等数论-扩展欧几里德算法
- HDU-2669(数论初步之扩展欧几里德)
- 扩展欧几里德算法(数论初步) By ACReaper
- 数论,扩展欧几里德算法,同余方程
- 扩展欧几里德算法与数论倒数
- 数论基础 辗转相除 扩展欧几里德
- Go 语言Linux下二进制安装方法
- VPN搭建更新及iPhone客户端
- HTML基础--元素类型及类型转换
- Servlet执行过程
- AVL树
- hihocoder 1297 : 数论四·扩展欧几里德
- 选择排列函数
- scala 奇淫巧技
- 2017年10月21日 第十二次总结
- 前端input标签文本框只显示字体,框、点击时光标消失,点击不可更改字体
- hdu 3268 最短路 建模+细节
- 51nod 1274 最长递增路径【DP】
- 一道面试题:通过wait和notify的两个线程交互输出thread1-1...thread1-5,thread2-6...thread2-10...
- 2412. 【NOI2005】瑰丽华尔兹