您的位置:首页 > 其它

pku 1061 青蛙约会

2014-07-18 10:53 246 查看
这道题考的就是扩展欧几里得原理,首先根据题意可以建模

设跑了t步 最后相遇,由题意可以得到等式。

(n-m)t+kl=x-y

不要怕,也不需要管两只青蛙谁在前,谁在后,直接列式。

然后扩展gcd,可以解出 t ..

#include <iostream>

typedef long long ll;

using namespace std;

void exgcd(ll a,ll b,ll &d,ll &x,ll &y)

{

if(!b)

{

x=1;

y=0;

d=a;

return;

}

exgcd(b,a%b,d,x,y);

ll temp=x;

x=y;

y=temp-(a/b)*y;

}

int main()

{

ll x,y,m,n,l;

ll d,x0,y0;

while(cin>>x>>y>>m>>n>>l)

{

ll a=n-m;

ll b=l;

ll c=x-y;

exgcd(a,b,d,x0,y0);

if(c%d)

{

printf("Impossible\n");

continue;

}

x0=x0*(c/d)%b;

x0=(x0+b)%b;

printf("%lld\n",x0);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: