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