Description
Input
Output
Sample Input
1 2 3 4 5
Sample Output
4
题意:起点分别为x,y,一次分别往前跳m,n米,前进的路是环形,长度为L,求跳几次后重合,或不可能重合。
分析:待续....
//直接模拟TLE,要用扩展欧几里德求解同余线性方程,我不会,只好现学现用ヽ(≧Д≦)ノ #include<stdio.h> long long x,y,m,n,l,t,p,q; 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 tmp=x; x=y; y=tmp-a/b*y; return r; } bool modular_linear_equation(long long a,long long b,long long n) { long long x,y,x0; long long d=exgcd(a,n,x,y); if(b%d) { printf("Impossible\n"); return false; } x0=(x*(b/d)%(n/d)+n/d)%(n/d); printf("%lld",x0); return true; } int main() { scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l); p=m-n+l; q=y-x+l; modular_linear_equation(p,q,l); return 0; }
原文:http://www.cnblogs.com/flipped/p/5183791.html