OpenJ_Bailian - 2977 生理周期 【枚举】
题目链接: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 生理周期 【枚举】相关推荐
- POJ 2977 生理周期 解题报告
2977 : 生理周期 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高 ...
- 2977 生理周期(简单的枚举例子)
描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精 ...
- 2977:生理周期(枚举)
总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在 ...
- OpenJ_Bailian 4148 生理周期
题目地址: https://vjudge.net/problem/OpenJ_Bailian-4148 人生来就有三个生理周期,分别为体力周期.感情周期和智力周期,它们的周期长度分别为23天.28天和 ...
- 算法-生理周期(枚举-java)
文章目录 一.题目介绍 二.题目思路 代码 总结 一.题目介绍 人有体力.情商.智商的高峰日子,它们分别每隔23天.28天和33天出现一次. 对于每个人,我们想知道何时三个高峰落在同一天.给定三个高峰 ...
- Bailian2977 生理周期【枚举+中国剩余定理】
2977:生理周期 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰. ...
- 120 - 算法 - 枚举 周期性跳转 openjudge:4148生理周期
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> using namespace st ...
- Bailian4148 生理周期【枚举+中国剩余定理】
4148:生理周期 描述 人生来就有三个生理周期,分别为体力周期.感情周期和智力周期,它们的周期长度分别为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如, ...
- 算法思想(枚举)——百钱百鸡+生理周期+完美立方+熄灯问题+讨厌的青蛙
枚举的思想其实时日常生活中提取的一种智慧 ^------^ 枚举的思想在生活中有着非常广泛的应用 在对事物进行归纳推理时,会逐一考察某个事物的所有可能的情况,并且逐一进行检验,这就是枚举 ...
最新文章
- 密码学摘要算法之MD5
- JMS规范、ActiveMQ Broker和ActiveMQ传输协议
- IE浏览器下ajax缓存导致数据不更新的解决方法
- 如何遍历JavaScript对象?
- 使用电脑一定得有良好的习惯呀!
- [BZOJ] 3191 [JLOI2013]卡牌游戏
- 合并k个有序链表 python_[LeetCode] 23. Merge k Sorted Lists 合并k个有序链表
- java数据结构创建树_在java中创建树数据结构?
- .NET Timer控件
- 微软:PowerShell 命令行工具存在 RCE 漏洞,请尽快修复
- 吴恩达机器学习cs229一二节总结
- 请实现数组按照数组项中userName中的姓名拼音排序
- 32.768khz晶振应该接多大的电容
- 交换机的作用及应用原理
- mysql 锁机制与原理详解
- k8s的Scheduler 原理(预选策略、优选策略)
- ThinkPHP6 缩略图上传
- 无法打开Win10计算机管理,win10系统我的电脑管理打不开怎么办
- jarvis oj(web wp)
- 如何用P6软件编制项目进度计划
热门文章
- pycharm如何增加运行时内存
- 市值高达67亿的1元“壳股”海润光伏 谁敢接盘?
- 科技云报道:AI+Science、元宇宙、仿生机器人……云栖大会带你看到未来的样子
- 概率论的学习和整理12: 正态分布
- LINUX系统编程 LINUX 虚拟内存
- 自来水中锰超标怎么办
- 计算机网络路由器的配置连接不上,为什么路由器连接不上_我的电脑换了一个路由器怎么就连接不上网络呢...
- 强化学习、GAN与多巴胺对撞:阿里AI 智能体认知研讨会干货
- “银联在线支付”签约无需任何条件,个人也可以完成签约
- 20220509数据结构绿书读书笔记