POJ 1061 青蛙的约会(扩展欧几里得)
来源:互联网 发布:jsp页面添加java代码 编辑:程序博客网 时间:2024/05/20 23:05
http://poj.org/problem?id=1061
分析:
由题意可知 求青蛙能否相遇 即求方程 (x+mt)%l=(y+nt)%l 中t的值 化简方程
(x + mt)%l = (y + nt)%l
x + mt - k1l = y + nt - k2l
(m - n)t + (k2 - k1)l = y - x
(m - n)t + kl = y - x
显而易见 这是一个扩展欧几里得 求一下t的最小正整解就好了
AC代码:
#include <iostream>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include <vector>#include <stack>#include <queue>#include <map>#include <set>#include<list>#include <bitset>#include <climits>#include <algorithm>#define gcd(a,b) __gcd(a,b)#define FINfreopen("input.txt","r",stdin)#define FOUT freopen("output.txt","w",stdout)typedef long long LL;const LL mod=1e9+7;const int INF=0x3f3f3f3f;const double PI=acos(-1.0);using namespace std;LL exgcd(LL a,LL b,LL &x,LL &y){ if (b==0){ x=1; y=0; return a; } LL ans=exgcd(b,a%b,y,x); y-=(a/b)*x; return ans; } int main (){LL x,y,m,n,l;while (scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l)!=EOF){LL ans,X,Y;ans=exgcd(m-n,l,X,Y);if ((y-x)%ans){printf ("Impossible\n");continue;}X=(X*(y-x)/ans)%(l/ans);if (X<0) X+=fabs(l/ans);printf ("%lld\n",X);}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 青蛙的约会(扩展欧几里得)
- poj 1061 青蛙的约会 【扩展欧几里得】
- Poj 1061 青蛙的约会(扩展欧几里得)
- poj 1061 青蛙的约会 扩展欧几里得
- poj-1061-青蛙的约会【扩展欧几里得】
- python中ones zeros 的用法
- 子类继承父类静态变量问题
- 21天学通python——第一天
- ReactNative——UI6.ListView实现带标题的多列列表
- 网站注册页面显示(表单标签)
- POJ 1061 青蛙的约会(扩展欧几里得)
- AI(1)认知 人工智能、机器学习、神经网络、深度学习。
- 考考你的Coding思维,如下编码(加密)代码的解码(解密)代码?
- Chrome 扩展程序——LastPass:密码管理工具
- C++数据类型转换总结
- 两次的CVTE面试之旅和反思
- ssh框架--图片(文件)上传
- Apache Shiro 架构
- 在Eclipse中配置Maven(阿里云镜像)