题目链接:https://cn.vjudge.net/problem/OpenJ_Bailian-2977

题目描述:

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

Input

一行,包含四个整数:p, e, i和d,相邻两个整数之间用单个空格隔开。 p, e, i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或 i。 所有给定时间是非负的并且小于等于365, 所求的时间小于等于21252。

Output

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

Sample Input

4 5 6 7

Sample Output

16994

AC代码:

#include <iostream>
#include <cmath>
using namespace std;
int MAX_Common_Diversor(int t1,int t2)
{int c;while( t2!=0) {c = t1%t2;t1 = t2;t2 = c;}return t1;
}
int MIN_Common_Multiple(int t1,int t2)
{return (t1*t2)/MAX_Common_Diversor(t1,t2);
}
int main()
{int p,e,i,d;cin >> p >> e >> i >> d;
/*for(int k=d+1;1;k++) {if(abs(k-p)%23==0 && abs(k-e)%28==0 && abs(k-i)%33==0) {cout << k-d;break;}}
*/// 优化: 很多日期是没有必要验证的
// 先找到体力(感情/智力)的第一次出现日期,那么从这个日期开始体力高峰期以后的出现日期必和这天差 23的整数倍 天;
// 所以增量改为23,再找以23为增量的感情第一次出现的日期 ,
//      则以后体力和感情高峰期共同出现的日期与改天必差 最小公倍数(23,28)*整数 天;
// 最后再以 最小公倍数(23,28)找三者共同出现的日期; int k;for(k=d+1;(k-p)%23;k++) ;     for( ;(k-e)%28;k+=23);int Add = MIN_Common_Multiple(23,28); for( ;(k-i)%33;k+=Add);cout << k-d;return 0;
}
// 体力 感情 智力
// 23   28    33

OpenJ_Bailian - 2977 生理周期 【枚举】相关推荐

  1. POJ 2977 生理周期 解题报告

    2977 : 生理周期 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高 ...

  2. 2977 生理周期(简单的枚举例子)

    描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精 ...

  3. 2977:生理周期(枚举)

    总时间限制: 1000ms 内存限制:  65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在 ...

  4. OpenJ_Bailian 4148 生理周期

    题目地址: https://vjudge.net/problem/OpenJ_Bailian-4148 人生来就有三个生理周期,分别为体力周期.感情周期和智力周期,它们的周期长度分别为23天.28天和 ...

  5. 算法-生理周期(枚举-java)

    文章目录 一.题目介绍 二.题目思路 代码 总结 一.题目介绍 人有体力.情商.智商的高峰日子,它们分别每隔23天.28天和33天出现一次. 对于每个人,我们想知道何时三个高峰落在同一天.给定三个高峰 ...

  6. Bailian2977 生理周期【枚举+中国剩余定理】

    2977:生理周期 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰. ...

  7. 120 - 算法 - 枚举 周期性跳转 openjudge:4148生理周期

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> using namespace st ...

  8. Bailian4148 生理周期【枚举+中国剩余定理】

    4148:生理周期 描述 人生来就有三个生理周期,分别为体力周期.感情周期和智力周期,它们的周期长度分别为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如, ...

  9. 算法思想(枚举)——百钱百鸡+生理周期+完美立方+熄灯问题+讨厌的青蛙

    枚举的思想其实时日常生活中提取的一种智慧 ^------^ 枚举的思想在生活中有着非常广泛的应用        在对事物进行归纳推理时,会逐一考察某个事物的所有可能的情况,并且逐一进行检验,这就是枚举 ...

最新文章

  1. 密码学摘要算法之MD5
  2. JMS规范、ActiveMQ Broker和ActiveMQ传输协议
  3. IE浏览器下ajax缓存导致数据不更新的解决方法
  4. 如何遍历JavaScript对象?
  5. 使用电脑一定得有良好的习惯呀!
  6. [BZOJ] 3191 [JLOI2013]卡牌游戏
  7. 合并k个有序链表 python_[LeetCode] 23. Merge k Sorted Lists 合并k个有序链表
  8. java数据结构创建树_在java中创建树数据结构?
  9. .NET Timer控件
  10. 微软:PowerShell 命令行工具存在 RCE 漏洞,请尽快修复
  11. 吴恩达机器学习cs229一二节总结
  12. 请实现数组按照数组项中userName中的姓名拼音排序
  13. 32.768khz晶振应该接多大的电容
  14. 交换机的作用及应用原理
  15. mysql 锁机制与原理详解
  16. k8s的Scheduler 原理(预选策略、优选策略)
  17. ThinkPHP6 缩略图上传
  18. 无法打开Win10计算机管理,win10系统我的电脑管理打不开怎么办
  19. jarvis oj(web wp)
  20. 如何用P6软件编制项目进度计划

热门文章

  1. pycharm如何增加运行时内存
  2. 市值高达67亿的1元“壳股”海润光伏 谁敢接盘?
  3. 科技云报道:AI+Science、元宇宙、仿生机器人……云栖大会带你看到未来的样子
  4. 概率论的学习和整理12: 正态分布
  5. LINUX系统编程 LINUX 虚拟内存
  6. 自来水中锰超标怎么办
  7. 计算机网络路由器的配置连接不上,为什么路由器连接不上_我的电脑换了一个路由器怎么就连接不上网络呢...
  8. 强化学习、GAN与多巴胺对撞:阿里AI 智能体认知研讨会干货
  9. “银联在线支付”签约无需任何条件,个人也可以完成签约
  10. 20220509数据结构绿书读书笔记