poj1061-青蛙的约会
生活随笔
收集整理的這篇文章主要介紹了
poj1061-青蛙的约会
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:兩只蛤蟆分別在操場的x,y處,他們分別以m,n的速度向同一個方向跳,問最終他們是否可以相遇
? ? ?0.設出同余方程
? ? ?1.exgcd解決
?
//#include <bits/stdc++.h> #include <iostream> #define X 10005 #define inF 0x3f3f3f3f #define PI 3.141592653589793238462643383 #define IO ios::sync_with_stdio(false),cin.tie(0), cout.tie(0); #pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; typedef long long ll; //typedef unsigned long long Ull; //2^64 const int maxn = (int)1e6 + 10; const int MOD = (int)1e9 + 7; const ll inf = 9223372036854775807; const int N = 47; ll primer[maxn]; ll a[maxn]; int ans[maxn], num[maxn]; void ex_gcd(ll a, ll b, ll &d, ll &x, ll &y) { if (!b) { x = 1; y = 0; d = a; } else { ex_gcd(b, a%b, d, y, x); y -= x * (a / b); }; } ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; } ll lcm(ll a, ll b) { return b / gcd(a, b)*a; } ll inv_exgcd(ll a, ll m) { ll d, x, y;ex_gcd(a, m, d, x, y);return d == 1 ? (x + m) % m : -1; } ll inv1(ll b) { return b == 1 ? 1 : (MOD - MOD / b)*inv1(MOD%b) % MOD; } void e_gcd(ll a, ll m,ll &d,ll &x,ll &y) {if (!m) x = 1, y = 0, d = a;elsee_gcd(m, a%m, d, y, x),y -= a / m * x; } // a=m=0時是無解的 int main() {IO;ll x, y, n, m, l;cin >> x >> y >> m >> n >> l;ll a = m - n, b = y - x;if(a<0)a=-a,b=-b;if(!a){cout<<"Impossible"<<endl;return 0;}m = l;ll d,xx,yy;e_gcd(a,m,d,xx,yy);if (b%d!=0)cout<<"Impossible"<<endl;else{cout<<((xx*b/d)%(m/d) + m/d) % (m/d)<<endl;}return 0; }?
總結
以上是生活随笔為你收集整理的poj1061-青蛙的约会的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu2973 YAPTCHA
- 下一篇: 洛谷【P2257】YY的GCD