poj 1061 青蛙的约会 (扩展gcd, 模线性方程)
来源:互联网 发布:程序员的数学线性代数 编辑:程序博客网 时间:2024/04/28 14:40
好长时间没贴代码了,这段时间看了些数论,水了几道题,过一段时间把以前的题好好整理下。唉,算法学不成器,技术又不过关,菜鸟都要哭死了
这道题使用模线性方程做的,注意应该使用 long long 或 __int64数据类型,具体的exgcd 函数 和 解模线性方程 可以参照 《算法导论》。
//#include <iostream>#include <math.h>using namespace std;__int64 dis,step;__int64 exgcd(__int64 a,__int64 b,__int64 & x,__int64 & y)// a > b{if(0==b){x = 1;y = 0;return a;}else{__int64 xt,yt,ret = 0;ret = exgcd(b,a % b,xt,yt);x = yt;y = xt - (a / b ) * yt;return ret;}}void MLES(__int64 a,__int64 b,__int64 n)// ax = b(mod n){__int64 x, y ,d;d = exgcd(a,n,x,y);if(0== b % d){__int64 xt = x * (b / d) % n;while(xt < 0)xt += (n / abs((double)d));cout<<xt<<endl;}elsecout<<"Impossible"<<endl;}int main(){__int64 px,py,m,n,L;while(cin>>px>>py>>m>>n>>L){ dis = (py - px) % L;//第二只 相对于第一只的 距离 step = (m - n) % L;//第一只 的步进速度if(dis==0)cout<<0<<endl;else if(0==step)cout<<"Impossible"<<endl;elseMLES(step,dis,L);}return 0;}
0 0
- poj 1061 青蛙的约会 (扩展gcd, 模线性方程)
- POJ 1061 青蛙的约会(扩展GCD求模线性方程)
- POJ 1061 青蛙的约会 (扩展GCD)
- POJ 1061 青蛙的约会 【扩展GCD】
- poj-1061青蛙的约会 扩展GCD
- poj 1061 青蛙的约会 扩展gcd
- [ACM] POJ 1061青蛙的约会(扩展欧几里得求模线性方程)
- poj 1061 青蛙的约会(exGCD+模线性方程)
- POJ 1061 青蛙的约会 解题报告(模线性方程)
- poj 1060---青蛙的约会 【扩展GCD】
- poj 1061 青蛙的约会 扩展gcd的简单应用
- poj 1061 青蛙的约会(扩展gcd)
- poj 1061 青蛙的约会 数论扩展GCD
- poj 1061 青蛙的约会(扩展gcd)
- 1061 青蛙的约会 数论 扩展GCD
- poj 1061 青蛙的约会(用欧几里得解线性方程)
- poj 1061-青蛙的约会-拓展gcd
- POJ 1061 青蛙的约会 扩展欧几里得
- adb安装-linux
- 象棋中马走日字,给定棋盘上两个点,求两点间马最少走几步可达
- TCP三次握手连接及seq和ack号的正确理解
- Java并发学习之十五——使用读写锁同步数据访问
- Android JOSON应用及详解
- poj 1061 青蛙的约会 (扩展gcd, 模线性方程)
- 原码,反码,补码详解
- 【设计分享】linux硬件驱动实例及编译模块加载
- #LintCode# Binary Search
- uva-211-The Domino Effect
- std::string用法总结
- 自己实现的string类
- vi常用的编辑命令
- iOS 近期学习规划