码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj 1477 扩展欧几里德

时间:2018-07-28 11:58:01      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:ace   imp   first   scanf   code   扩展   欧几里德   mod   思路   

思路:很裸的求相遇问题。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int>

using namespace std;

const int N = 2e6 + 7;
const int M = 1e5 + 7;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 +7;

LL a, b, c, m, n, L, x, y;

LL exgcd(LL a, LL b, LL &x, LL &y) {
    if(!b) {
        x = 1; y = 0;
        return a;
    } else {
        LL gcd, t; gcd = exgcd(b, a % b, x, y);
        t = x; x = y; y = t - (a / b) * y;
        return gcd;
    }
}

int main() {
    scanf("%lld%lld%lld%lld%lld", &a, &b, &m, &n, &L);
    LL gcd = exgcd(n - m, L, x, y);
    if((a - b) % gcd != 0) {
        puts("Impossible");
    } else {
        x *= ((a - b) / gcd);
        x %= L / gcd;
        if(x < 0) x += abs(L / gcd);
        printf("%lld\n", x);
    }
    return 0;
}


/*
*/

 

bzoj 1477 扩展欧几里德

标签:ace   imp   first   scanf   code   扩展   欧几里德   mod   思路   

原文地址:https://www.cnblogs.com/CJLHY/p/9380739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!