标签:转化 问题 esc 坐标 变量 void sam 输出 时间
http://poj.org/problem?id=1061
Description
Input
Output
Sample Input
1 2 3 4 5
Sample Output
4
设x为最终结果,则我们能列出式子:
(p - q)x = t - s (mod L)
显然该式可以转化为:
(p - q)x + Ly = t - s
再变换一下变成:
ax + by = c
变成了熟悉的exgcd问题,正常求解即可。
#include<cstdio> #include<cctype> #include<iostream> using namespace std; typedef long long ll; ll gcd(ll a,ll b) { return b?gcd(b,a%b):a; } void exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x=1;y=0; return; } exgcd(b,a%b,x,y); ll temp; temp=x; x=y; y=temp-(a/b)*y; return; } int main(){ ll s,t,p,q,l; cin>>s>>t>>p>>q>>l; ll a=(p-q+l)%l,b=l,c=(t-s+l)%l,g=gcd(a,b); if(c%g){ puts("Impossible"); return 0; } a/=g;b/=g;c/=g; ll x,y; exgcd(a,b,x,y); x=(x%b+b)%b; x=x*c%b; cout<<x; return 0; }
标签:转化 问题 esc 坐标 变量 void sam 输出 时间
原文地址:http://www.cnblogs.com/luyouqi233/p/7898974.html