zoukankan      html  css  js  c++  java
  • 中国剩余定理模板poj1006

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <cmath>
    #include <cstdlib>
    #include <algorithm>
    
    using namespace std;
    typedef long long ll;
    const int maxn = 20;
    ll exgcd(ll a, ll b, ll &x, ll &y)
    {
        if (b == 0)
        {
            x = 1; 
            y = 0;
            return a;
        }
        ll r = exgcd(b, a % b, x, y);
        ll t = x;
        x = y;
        y = t - a / b * y;
        return r;
    }
    ll china_remainder(int a[], int w[], int n)//w存放除数,a存放余数
    {
        ll M = 1, ans = 0, x, y;
        for (int i = 0; i < n; i++)
            M *= w[i];
        for (int i = 0; i < n; i++)
        {
            ll m = M / w[i];
            exgcd(m, w[i], x, y);
            ans = (ans + x * m * a[i]) % M;
        }
        return (ans % M + M) % M;
    }
    int main()
    {
        int T, m, a[maxn], w[maxn];
        w[0] = 23; w[1] = 28; w[2] = 33;
        ll n = 3;
        int p, e, i, d, kase = 0;
        while (~scanf("%d %d %d %d", &p, &e, &i, &d))
        {
            if (p == -1 && e == -1 && i == -1 && d == -1)
                break;
            a[0] = p;
            a[1] = e;
            a[2] = i;
            ll ans = china_remainder(a, w, n);
            ans -= d;
            int mod = w[0] * w[1] * w[2];
            ans = (ans % mod + mod) % mod;
            if (ans == 0)
                ans = mod;
            printf("Case %d: the next triple peak occurs in %lld days.
    ", ++kase, ans);
    
        }
        return 0;
    }
  • 相关阅读:
    JSP第六周作业
    JSP第四次(2.0)
    JSP第四周
    软件测试课堂练习1
    5。建库,表,增删改查
    4.安卓练习
    2android九宫格
    第七周作业
    jsp第六周作业
    jsp第四周作业
  • 原文地址:https://www.cnblogs.com/Howe-Young/p/4710691.html
Copyright © 2011-2022 走看看