#12018. Triple Peak / 生理周期问题

Triple Peak / 生理周期问题

Problem J30: Triple Peak / 生理周期问题

版权信息: · 来源:POJ 1006


任务总览

任务名称 时间限制 内存限制 分数
生理周期问题 1 sec 1024 MB 15 points

题目描述

人生来就有 3 个生理周期:

  • ​ 体力周期 ​:23 天为一个周期;
  • ​ 情感周期 ​:28 天为一个周期;
  • ​ 智力周期 ​:33 天为一个周期。

每个周期中有一天是​ 高峰期 ​,在高峰这一天人的各项状态达到巅峰。

由于 3 个周期长度不同,​ 3 个高峰一般不会同时出现 ​。我们希望找出从某一天开始起, 下一个三重高峰同日出现 的时间。


输入格式

每组测试数据包含 4 个整数 ppeeiidd

  • pp:体力高峰上一次出现的天数;
  • ee:情感高峰上一次出现的天数;
  • ii:智力高峰上一次出现的天数;
  • dd:当前的天数(从当年第一天起算);

输入以一行 -1 - 1 - 1 - 1 结束,表示输入终止。

所有输入满足:0p,e,i,d<3650 \leq p, e, i, d < 365。输出的天数 xx 应满足 1x212521 \leq x \leq 21252


输出格式

对于每组输入,输出一行:

Case X : the next triple peak occurs in Y days.

其中:

  • X 是当前测试样例编号(从 1 开始);
  • Y 是从当前时间 dd 起,第一个三个高峰再次重合的天数(不包括当天)。

输入输出样例

输入示例

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

输出示例

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.

题目分析与解法

✅ 关键数学原理: * * 中国剩余定理(CRT) * * 思想

求一个正整数 xx,使得:


image

在已知周期的最小公倍数 L=lcm(23,28,33)=21252L = \text{lcm}(23, 28, 33) = 21252 范围内,找出满足上述条件并且 x>dx > d 的最小解。


时间复杂度分析

操作 复杂度
枚举(暴力) O(21252)O(21252)
中国剩余定理 O(1)O(1)
总复杂度 极小,可接受