zoukankan      html  css  js  c++  java
  • 59: loj #10215

    $des$

    https://loj.ac/problem/10215

    $sol$

    exgcd检查

    $code$

    #include <iostream>
    #include <cstdlib>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    #define gc getchar()
    inline int read() {
        int x = 0; char c = gc;
        while(c < '0' || c > '9') c = gc;
        while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = gc;
        return x;
    }
    
    #define LL long long
    
    const int N = 20;
    
    LL C[N], P[N], L[N];
    int n;
    int M = 1e6;
    
    LL Exgcd(LL a, LL b, LL &x, LL &y) {
        if(b == 0) {
            x = 1, y = 0; return a;
        }
        LL gg = Exgcd(b, a % b, x, y);
        LL tmp = x;
        x = y, y = tmp - a / b * y;
        return gg;
    }
    
    bool Solve(LL k) {
        for(int i = 1; i <= n; i ++) {
            for(int j = i + 1; j <= n; j ++) {
                LL c1 = C[i], c2 = C[j], p1 = P[i], p2 = P[j], x, y;
                LL b = p1 - p2, d = c2 - c1;
                if(b < 0) b = -b, d = -d;
                LL g = Exgcd(b, k, x, y);
                if(d % g) continue;
                x *= (d / g);
                LL r = k / g;
                while(x < 0) x += r;
                x %= r;
                if(x <= min(L[i], L[j])) return 0;
            }
        }
        return 1;
    }
    
    int main() {
        n = read();
        LL Max = 0;
        for(int i = 1; i <= n; i ++)
            C[i] = read(), P[i] = read(), L[i] = read(), Max = max(Max, C[i]);
        int a;
        for(a = Max; a <= M; a ++) {
            if(Solve(1ll * a)) {
                cout << a; return 0;
            }
        }
        
        return 0;
    }
  • 相关阅读:
    hdoj5813【构造】
    Codeforces645B【树状数组求逆序数】
    pojcoin【未完待续】
    hdoj5818【模拟】
    poj2385【基础DP】
    poj3069【贪心,水】
    谦虚
    poj3617【贪心】
    poj2229【完全背包-规律Orz...】
    poj3176【简单DP】
  • 原文地址:https://www.cnblogs.com/shandongs1/p/9910559.html
Copyright © 2011-2022 走看看