扩展欧几里德算法模版题 POJ 1061青蛙的约会
来源:互联网 发布:linux android 模拟器 编辑:程序博客网 时间:2024/05/11 09:08
扩展欧几里德算法的分析详见本人的 HDU 1576。
这里直接粘贴代码,公式题应该是广大Acmer最喜欢的题目之一了。
#include<stdio.h>long long Gcd(long long a,long long b){return b?Gcd(b,a%b):a;}long long exGcd(long long a,long long b,long long &x,long long &y){ if(b==0) { x=1;y=0; return a; } long long r=exGcd(b,a%b,x,y); long long t=x;x=y;y=t-a/b*y; return r;}int main(){long long x,y,m,n,l;//a=m-n;b=-l;y-xlong long p,q,gab;while(~scanf("%I64d%I64d%I64d%I64d%I64d",&x,&y,&m,&n,&l)){exGcd(m-n,-l,p,q);gab=Gcd(m-n,-l);if(gab==y-x)printf("%I64d\n",p);else if((y-x)%gab==0){//p1 = p0*(c/Gcd(a,b)),q1 = q0*(c/Gcd(a,b))p=p*((y-x)/gab);int t=1;//p = p1 + b/Gcd(a, b) * tq = q1 - a/Gcd(a, b) * twhile(p<0)p=p+(-l)/gab*(t++);p=p%(-l/gab);//这里公式得到的结果可能不是最简正整数所以要取余printf("%I64d\n",p);}elseprintf("Impossible\n");}return 0;}
0 0
- 扩展欧几里德算法模版题 POJ 1061青蛙的约会
- poj 1061 青蛙的约会 -扩展欧几里德算法
- POJ-1061 青蛙的约会(扩展欧几里德算法)
- POJ 1061青蛙的约会 --扩展欧几里德算法
- POJ 1061青蛙的约会【扩展欧几里德算法】
- poj 1061 青蛙的约会(扩展欧几里德)
- POJ 1061-青蛙的约会(扩展欧几里德)
- POJ 1061青蛙的约会 (扩展欧几里德)
- POJ 1061 青蛙的约会 欧几里德扩展
- POJ 1061 青蛙的约会(扩展欧几里德)
- Poj 1061青蛙的约会 扩展欧几里德
- 【POJ 1061 青蛙的约会】 + 扩展欧几里德
- POJ 1061 青蛙的约会(扩展欧几里德)
- POJ 1061 青蛙约会(扩展欧几里德)
- 【bzoj1477】【青蛙的约会】【扩展欧几里德算法】
- poj1061 青蛙的约会(扩展欧几里德算法)
- poj - 1061 - 青蛙的约会(扩展欧几里德)
- POJ 1061 青蛙的约会(扩展欧几里德)
- OpenCV在图像上抠取指定区域平移、缩放的图像
- c++循环控制语句
- Oracle sqlplus中常用的set命令
- jstack jstat jmap
- 《合成孔径雷达成像——算法与实现》之【6】仿真图3.6加窗
- 扩展欧几里德算法模版题 POJ 1061青蛙的约会
- zookeeper 集群配置
- 菜鸟个人总结之纯sql导入数据(oracle,pl/sql)
- tomcat启动时检测到循环继承而栈溢出的问题
- 单源最短路径<队列><可以返回再找>
- c++ 异常处理 的不足
- 堆和栈访问效率
- PL/SQL 基础
- nsoj 4714 次方求模