POJ 1006 Biorhythms

原创 2012年03月26日 13:24:39

1.题目的大意是给定三个数a1, a2, a3,求出一个数,这个数除以23, 28, 33得到的余数为a1, a2, a3;

2.从网上查到用中国余数定理,以下是找到的资料:

若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn,则可表示为下式:
x=R1r1+R2r2+…+Rnrn+RD
其中R1是d2、d3、…、dn的公倍数,而且被d1除,余数为1;
R1 、R2…、

Rn是d1、d2、…、dn-1的公倍数,而且被dn除,余数为1;
D是d1、d2、…、的最小公倍数;
R是任意整数,可根据实际需要决定;
且d1、、…、必须互质,以保证每个Ri(i=1,2,…,n)都能求得.

根据上面的条件求出常数R1 = 5544,R2 = 14421,R3 = 1288,D = 21252
每次给的数据中的前三个值即相当于上面的余数。
则显然:
res = R1 * Physical + R2 * Emotion + R3 * Intelligence + RD - givenDate
并且0 =< res <= D

#include<iostream>
using namespace std;

int main()
{
    int ph, em, ic, date, ans;
    int R1 = 5544, R2 = 14421, R3 = 1288, D = 21252;
    int i = 0;
    while(cin >> ph >> em >> ic >> date && ph != -1)
    {
        ans = (R1 * ph + R2 * em + R3 * ic + D - date) % D;
        if(ans == 0)
            ans = D;
        i ++;
        cout << "Case " << i <<": the next triple peak occurs in " << ans <<" days." << endl;
    }
    return 0;
}


POJ 1006 Biorhythms(中国剩余定理,同余方程)

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 132867   Accepted: 424...
  • Tsaryu
  • Tsaryu
  • 2017年01月16日 18:58
  • 102

POJ 1006-Biorhythms(CRT)

题意:人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个...

POJ 1006-Biorhythms-生理周期峰值(中国剩余问题)

问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:HDU.cpp *作 者:单昕昕 ...
  • MIKASA3
  • MIKASA3
  • 2015年01月27日 21:58
  • 578

POJ-1006 Biorhythms

题目大意:三个周期,长度为23,28,33.给定整数p,e,i表示三个周期高峰出现的时间,整数d表示一个给定的时间,求给定时间后至三个均达到高峰的时间之间的天数。 题目链接:http://poj.or...

poj1006 Biorhythms(中国剩余定理)

http://poj.org/problem?id=1006 题意:给你三个属性顶峰的开始日期,今天的日期,以及三个周期大小,求下一次三个顶峰均出现时的最早时间。 思路:首先ym下这位...

poj 1006 Biorhythms 中国剩余定理

这道题真是花费n多时间啊,关键我就是想知道事情的来龙去脉. "中国剩余定理"的经典例子: 《孙子算经》中有“物不知数”问题:“今有物不知其数,三三数之余二 ,五五数之余三 ,七七数之余二,问物几何...

POJ 1006--Biorhythms

poj 1006

【POJ】1006 Biorhythms

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 85493   Ac...

POJ_1006_Biorhythms

/* 利用“中国剩余定理”求解,推导如下: 1.定理条件:23、28、33两两互质; 2.由(28*33)%23=4,找出(28*33*6)%23=5544%23=1, 即对整数(5544*p),...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1006 Biorhythms
举报原因:
原因补充:

(最多只允许输入30个字)