Problem Description

人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。

Input

输入四个整数:p, e, i和d。 p, e, i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或 i。 所有给定时间是非负的并且小于365, 所求的时间小于21252。

当p = e = i = d = -1时,输入数据结束。

Output

从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。

Sample Input

0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1

Sample Output

Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 21152 days.
Case 3: the next triple peak occurs in 19575 days.
Case 4: the next triple peak occurs in 16994 days.
Case 5: the next triple peak occurs in 8910 days.
Case 6: the next triple peak occurs in 10789 days.

思路:

根据题意可知,一个周期内有一天为峰值,即任意两个峰值间隔着整数倍的周期。

假设:一年的第 N 天到达峰值,周期是 T

则下一次到达峰值的时间为:

假设三个峰值同时出现的那天为 S

因此三个峰值同时出现的那天满足:

其中, 为体力、情感、智力出现峰值的日期, 为体力、情感、智力的周期,因此仅需求三个非负整数  使得等式成立。

故问题可转化为:S%23=P,S%28=E,S%33=I,P、E、I 为体力、情感、智力的出现的时间

由中国剩余定理可得以下同余方程组:

n1%(28*33) = 0, n1%23 = P
n2%(23*33) = 0, n2%28 = E
n3%(23*28) = 0, n3%33 = I

解得 S = (n1+n2+n3) % 21252

Source Program

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<set>
#include<map>
#include<stack>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 10001
#define MOD 123
#define E 1e-6
using namespace std;
int main()
{int p, e, i, d;int n=0;//计录循环数的while(scanf("%d%d%d%d", &p, &e, &i, &d)!=EOF&&p>=0){int n1,n2,n3;/*求得每个周期内的高峰在第几天*/p=p%23+1;e=e%28+1;i=i%33+1;/*计算 n1%(28*33) = 0, n1%23 = P*/for(int k=1;;k++){int m=(k*28*33)%23;if(p%m==0){n1=k*28*33*(p/m);break;}}/*n2%(23*33)=0,n2%28=E*/for(int k=1;;k++){int m=(k*23*33)%28;if(e%m==0){n2=k*23*33*(e/m);break;}}/*n3%(23*28)=0, n3%33=I*/for(int k=1;;k++){int m=(k*23*28)%33;if(i%m==0){n3=k*23*28*(i/m);break;}}int s=(n1+n2+n3-1)%21252;while(s-d<=0)s+=21252;printf("Case %d: the next triple peak occurs in %d days.\n",++n,s-d);}return 0;
}

Biorhythms(POJ-1006)相关推荐

  1. Bailian2734 十进制到八进制【入门】(POJ NOI0113-45)

    问题链接:POJ NOI0113-45十进制到八进制 2734:十进制到八进制 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个十进制正整数转化成八进制. 输入 一行,仅含一个十进 ...

  2. Bailian2676 整数的个数【入门】(POJ NOI0105-11)

    问题链接:POJ NOI0105-11 整数的个数 2676:整数的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定k(1 < k < 100)个正整数,其中每个数 ...

  3. Bailian4029 数字反转【进制】(POJ NOI0105-29)

    问题链接:POJ NOI0105-29 数字反转 4029:数字反转 总时间限制: 1000ms 内存限制: 65535kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数 ...

  4. Bailian2735 八进制到十进制【入门】(POJ NOI0113-46)

    问题链接:POJ NOI0113-46 八进制到十进制 2735:八进制到十进制 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个八进制正整数转化成十进制. 输入 一行,仅含一个八 ...

  5. Silver Cow Party (POJ - 3268 )

    Silver Cow Party (POJ - 3268 ) 这道题是我做的最短路专题里的一道题,但我还没做这个,结果比赛就出了,真是.......... 题目: One cow from each ...

  6. Biorhythms(生物周期)

    Biorhythms(生物周期) Time Limit: 1000 ms Memory Limit: 10000 KiB Problem Description Some people believe ...

  7. 吴昊品游戏核心算法 Round 7 —— 熄灯游戏AI(有人性的Brute Force)(POJ 2811)

    暴力分为两种,一种属于毫无人性的暴力,一种属于有人性 的暴力.前面一种就不说了,对于后面一种情况,我们可以只对其中的部分问题进行枚举,而通过这些子问题而推导到整个的问题中.我称之为有人性的Brute ...

  8. 【二分】Best Cow Fences(poj 2018)

    Best Cow Fences poj 2018 题目大意: 给出一个正整数数列,要你求平均数最大,长度不小于M的字串,结果乘1000取整 输入样例 10 6 6 4 2 10 3 8 5 9 4 1 ...

  9. 昂贵的聘礼(poj 1062)

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  10. 主席树学习小结(POJ 2104)

    在高中的时候就听到过主席树了,感觉非常高端,在寒假的时候 winter homework中有一题是查找区间第K大的树,当时就开始百度这种网上的博客,发现主席树看不懂,因为那个root[i],还有tx[ ...

最新文章

  1. 用ASP.NET建立一个在线RSS新闻聚合器(3)
  2. 1000万个“AI名师”:用机器算法“解剖”应试教育 | AI聚变
  3. 马尔可夫“折棍子”过程 Markovian Stick-breaking Process 简介
  4. 1996黄金一代NBA选秀
  5. C语言函数内static关键字 疑惑
  6. CRM lifecycle status
  7. 构建现代Web应用时究竟是选择传统web应用还是SPA
  8. [C++ STL algorithm] lower_bound、upper_bound、unique的本质
  9. rocketmq java home,rocketmq 安装与配置以及遇到的问题
  10. CV《神经风格转换》
  11. 的生物合成方式主要包括_J EXP BOT 综述| 植物次级代谢产物在调控微生物组组分及功能中的作用...
  12. consul java 注册中心_Spring Cloud微服务架构实战之Consul注册中心02:consul入门案例...
  13. 一个内存增长问题的分析和处理(二)——valgrind工具的用法
  14. 激光导航agv常见的三大应用场景是什么?
  15. Linux Command—— Wildcard
  16. RMAN备份数据库_为长期存储做数据库备份(归档备份,Archival Backup)
  17. 金沙滩(kingst)单片机开发板左右流水灯作业
  18. 【Matlab】imresize的用法
  19. SciTe 无法输入中文解决方法(图文版)
  20. 人声分离:快速分离视频和音频中的人声和背景伴奏,超简单

热门文章

  1. 程序员必会的核心基础知识:1张导图+10本书
  2. 芯片内部长啥样?牛人用1500张照片,一层层放给你
  3. DALI调光的计算方式
  4. python购物车结算不了_Python——购物车问题
  5. 横空出世!IDEA画图神器来了,比Visio快10倍!
  6. 【版本发布】JEECG 3.6.2 移动能力版发布,快速开发平台
  7. 【leetcode】423. Reconstruct Original Digits from English
  8. Cisco2960交换机密码忘记恢复教程
  9. css3-3 css3背景样式
  10. 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装