zoukankan      html  css  js  c++  java
  • 生理周期 (poj 1006) 题解

    【问题描述】

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

    【样例输入】

        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.

    【解题思路】

         思路很简单,一开始我是一天一天去搜,先把数据初始化,即如果正好是三个高峰在一起,则全部+1,再搜,搜到三个高峰在一起就输出,交上去之后发现TLE了……果断换思路。

         好吧,其实思路也没有换,只是减少了一些不可能的枚举而已,由题意可知,首先能被23整除的数先算出来,然后在被23整除的基础上,即每次加23,能被28整除的数算出来,然后在被23和28都能整除的基础上,即每次加23*28,能被33整除的数算出来,这样得到的数减去开始的天数即为答案。

    【代码实现】

     1 var p,e,i,d,x,k:longint;
     2 begin
     3  while k=k do
     4   begin
     5    inc(k);
     6    readln(p,e,i,d);
     7    if (p=-1)and(e=-1)and(i=-1)and(d=-1) then
     8     break;
     9    for x:=d+1 to 21252 do
    10     if abs(x-p)mod 23=0 then
    11      break;
    12    while x<=21252 do
    13     begin
    14      if abs(x-e) mod 28=0 then//注意:先判断,再加,有极限数据,下面同理
    15       break;
    16      inc(x,23);
    17     end;
    18    while x<=21252 do
    19     begin
    20      if abs(x-i) mod 33=0 then
    21       break;
    22      inc(x,23*28);
    23     end;
    24    writeln('Case ',k,': the next triple peak occurs in ',x-d,' days.');
    25   end;
    26 end.
  • 相关阅读:
    PHP ffmpeg详解简单上手 window64 音频amr转mp3
    PHP强制转换类型
    PHP使用array_unique对二维数组去重处理
    发布包
    CSS用户界面样式
    数组
    结构类型(枚举,结构,联合)
    循环
    程序结构
    文件
  • 原文地址:https://www.cnblogs.com/PengBoLiuXu/p/4493583.html
Copyright © 2011-2022 走看看