[2016-04-20][POJ][1061][青蛙的约会]
[2016-04-20][POJ][1061][青蛙的约会]
时间:2016-04-20 13:59:38 星期三
题目编号:[2016-04-20][POJ][1061][青蛙的约会]
题目大意:两支青蛙,在一个圈上往同一个方向跳,问能否相遇
分析:
- 设时间为t
- 有 ,
- 解得到同余方程的最小非负整数解即可
#include<cstdio>#include<algorithm>using namespace std;long long extend_gcd(long long a,long long b,long long &x,long long &y){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(){long long x,y,n,m,l;scanf("%I64d%I64d%I64d%I64d%I64d",&x,&y,&m,&n,&l);long long xx,yy,a,b;a = n - m;b = x - y;long long d = extend_gcd(a,l,xx,yy);if(b % d){ puts("Impossible");return 0;}xx = xx * (b / d);long long r = l / d;xx = (xx%r + r)%r;printf("%I64d\n",xx);return 0;}
浙公网安备 33010602011771号