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

biorhythms

时间:2018-10-13 02:46:49      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:不定方程   put   bio   iostream   ring   col   set   namespace   type   

传送门

luogu简化了题意而且提供了翻译。

直接开做,这题可以选择使用CRT,我也使用了……但是其实似乎暴力也可以。

我们老套的CRT操作,这样每次对于输入的值直接乘一下就行。

注意特判的时候如果四个值都是0的话要输出0.

看一下代码(CRT的内容在代码里)

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cmath>
#include<set>
#include<queue>
#define pr pair<int,int>
#define mp make_pair
#define fi first
#define sc second
#define rep(i,a,n) for(int i = a;i <= n;i++)
#define per(i,n,a) for(int i = n;i >= a;i--)
#define enter putchar(‘\n‘)

using namespace std;
typedef long long ll;
const int N = 200005;
const int INF = 1000000009;

int read()
{
    int ans = 0,op = 1;
    char ch = getchar();
    while(ch < 0 || ch > 9)
    {
    if(ch == -) op = -1;
    ch = getchar();
    }
    while(ch >= 0 && ch <= 9)
    {
    ans *= 10;
    ans += ch - 0;
    ch = getchar();
    }
    return ans * op;
}

int exgcd(int a,int b,int &x,int &y)
{
    if(!b)
    {
    x = 1,y = 0;
    return a;
    }
    int d = exgcd(b,a%b,y,x);
    y -= a / b * x;
    return d;
}

int M1,M2,M3,x,y,e1,e2,e3,M,p,e,i,d,cur,tot;

int main()
{
    M1 = 28 * 33,M2 = 23 * 33,M3 = 23 * 28,M = 21252;//先构造
    exgcd(M1,23,x,y),x = (x + 23) % 23,e1 = M1 * x;
    exgcd(M2,28,x,y),x = (x + 28) % 28,e2 = M2 * x;
    exgcd(M3,33,x,y),x = (x + 33) % 33,e3 = M3 * x;//求出mod每一个给定的数余1,剩下能整除的一组数
    while(++tot)
    {
    p = read(),e = read(),i = read(),d = read();
    if(p == -1 && e == -1 && i == -1 && d == -1) break;
    cur = p * e1 + e * e2 + i * e3,cur %= M;//解不定方程一样把这个解乘以本次输入的数再相加
    cur -= d,cur = (cur+M) % M;
    if(d == 0 && cur == 0) cur = M;
    printf("Case %d: the next triple peak occurs in %d days.\n",tot,cur);
    }
    return 0;
}

 

biorhythms

标签:不定方程   put   bio   iostream   ring   col   set   namespace   type   

原文地址:https://www.cnblogs.com/captain1/p/9781292.html

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