- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、编程题
1、1.人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长
为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方
面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三
个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们
想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天
开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一
个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三
个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现
三个高峰同天的时间是12,则输出2(注意这里不是3)。
时间限制:1000
内存限制:65536
输入
一行,包含四个整数:p,e,i和d,相邻两个整数之间用单个空格隔开。p,e,
i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d
是给定的时间,可能小于p,e,或i。所有给定时间是非负的并且小于等于365,
所求的时间小于等于21252。
输出
一个整数,即从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)
。
样例输入
```
4567
```
样例输出
```
16994
```
参考答案:首先,我们计算智力、感情和体力周期高峰分别出现在哪一天。对于智
力周期,高峰出现的时间为:智力周期高峰时间=d+(33-(d%33))%
33对于感情周期,高峰出现的时间为:感情周期高峰时间=d+(28-(d%28))%
28对于体力周期,高峰出现的时间为:体力周期高峰时间=d+(23-(d%23))%
23然后,我们找到这三个高峰时间中最早的一天,记为min_day。最后,我们计算
从给定时间到min_day的天数,即为所求结果。
解析:【喵呜刷题小喵解析】:
本题是一道关于时间周期和计算的问题。首先,我们需要理解题目中的三个周期:
体力、感情和智力周期,它们的周期长度分别为23天、28天和33天。每一个周期中
有一天是高峰,高峰这天,人会在相应的方面表现出色。
根据题目,我们需要计算从给定时间开始,下一次三个高峰落在同一天的时间(距
离给定时间的天数)。
首先,我们需要找到智力、感情和体力周期高峰分别出现在哪一天。由于每个周期
的高峰不会落在同一天,我们需要分别计算每个周期的高峰时间。
对于智力周期,高峰出现的时间为:智力周期高峰时间=d+(33-(d%33))%33
对于感情周期,高峰出现的时间为:感情周期高峰时间=d+(28-(d%28))%28
对于体力周期,高峰出现的时间为:体力周期高峰时间=d+(23-(d%23))%23
然后,我们需要找到这三个高峰时间中最早的一天,记为min_day。这是因为我们
需要找出下一次三个高峰落在同一天的时间,这个时间就是min_day。
最后,我们计算从给定时间到min_day的天数,即为所求结果。
注意,在计算周期高峰时间时,我们需要使用取模运算来确保结果在周期内。这是
因为给定时间可能是周期的任意一天,我们需要找出距离给定时间最近的下一个高
峰时间。
2、2.开关问题
有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开
关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开
关的状态如果原来为开就变为关,如果为关就变为开。你的目标是经过若干次开关
操作后使得最后N个开关达到一个特定的状态。对于任意一个开关,最多只能进行
一次开关操作。你的任务是,计算有多少种可以达到指定状态的方法。(不计开关
操作的顺序)
时间限制:1000
内存限制:65536
输入
输入第一行有一个数K,表示以下有K组测试数据。每组测试数据的格式如下:
第一行一个数N(0N29)第二行
N个0或者1的数,表示开始时N个开关状态。第三行
N个0或者1的数,表示操作结束后N个开关的状态。接下来每行两个数I
J,表示如果操作第I个开关,第J个开关的状态也会变化。每组数据以00结束。
输出
如果有可行方法,输出总数,否则输出“Oh,itsimpossible~!!”不包括引号
样例输入
```
2
3
000
111
12
13
21
23
31
32
00
原创力文档


文档评论(0)