NOIP复赛模拟试卷(三)
题目名称 game frog date roman 输入文件 game.in frog.in date.in roman.in 输出文件 game.out frog.out date.out roman.out 内存限制 64M 64M 64M 64M 时限 1s 1s 1s 1s 第一题 Game
【题目描述】
小M在玩一个游戏。游戏有N轮,每一轮,系统给出两个数X和Y,她的任务是将当前得到的所有X和Y两两配对,将每对X、Y求和,使得最大的和最小。
小M算晕了,于是找你帮忙~ 【输入格式】
输入第一行包含一个整数N(1<=N<=100000)
接下来N行,每行两个整数X、Y(1<=X,Y<=100) 【输出格式】
输出共N行,每行一个整数,对于当前得到的所有X和Y进行配对,输出最大和最小的值。 【样例】 game.in 3 2 8 3 1 1 4
game.out 10 10 9
【数据范围】
对于50%的数据,N<=200; 对于100%的数据,N<=100000。
第二题 frog
【题目描述】
一些瓷砖排成一排,其中站着一只青蛙。瓷砖有两面,分别为白色和黑色。青蛙所所在的位置是没有瓷砖的。比如我们可以用BWFBBW表示瓷砖和青蛙的状态:黑-白-青蛙-黑-黑-白。
1
青蛙在其中跳来跳去,它可以选择向左或向右跳跃一格(在左边或右边有瓷砖的前提下),这样左边或右边的瓷砖就会滑向原来青蛙所在的位置。比如上面例子中青蛙向右跳跃一格之后变成:BWBFBW。另外,青蛙可以选择隔一个瓷砖跳,即跳到它右边的右边或左边的左边(在这些格子里有瓷砖的前提下),然后这些格子里的瓷砖会翻一面跳到青蛙原来所在的位置。比如BWFBBW中的青蛙越过右边的瓷砖跳到右边的右边的瓷砖,之后变成:BWWBFW。
青蛙想要通过最少的跳跃步数使得任意两个黑瓷砖之间都没有任何白瓷砖。 【输入格式】
输入包含一行一个串,表示原始瓷砖和青蛙的状态。B代表黑瓷砖,W代表白瓷砖,F代表青蛙。保证数据中只有一只青蛙。串不为空且长度不超过100。 【输出格式】
输出一行一个整数,表示最少的跳跃步数;如果不能在10步之内完成,输出-1。 【样例】 frog.in WWBBFBW frog.out 0
frog.in WWFBWBW frog.out 1
【数据范围】
对于30%的数据,串的长度不超过10; 对于100%的数据,串的长度不超过100。
第三题 date
【题目描述】
M想要去寄信,她希望信可以在一周内送到,就到邮局去问哪天可以送到。她记下了两个日期:寄信日期和收到日期,分别是D1和D2。但是M有点粗心,可能把两个日期记反了(也就是说,可能收到日期是D1而寄信日期是D2)。另外,M有点懒,她只记了D1的年份而没有记D2的年份,比如:如果D2是09/20/2005,她就只写了09/20,因为如果可以在一周内送到的话,D1和D2并没有相隔很远。
现在给你D1和D2,计算它们相差的天数是多少,是否在一周内。
【输入格式】
输入第一行为一个数字T,表示数据的组数。(1<=T<=10) 接下来T行,每行有两个日期D1和D2(用空格隔开),D1的格式为M/D/Y,分别表示月/日/年,D2的格式为M/D,保证所有数据都是合法的。(2000<=Y<=2200) 【输出格式】
对于每个数据,按照下面的格式输出一行,表示D2在D1之前几天或之后几天:
输出格式 条件 M/D/Y IS N DAY(S) PRIOR 如果D2在D1之前7天之内
2
M/D/Y IS N DAY(S) AFTER 如果D2在D1之后7天之内 SAME DAY OUT OF RANGE 如果D1和D2是同一天 如果D1和D2相差超过7天 注意:输出的M/D/Y是D2的日期,也就是说,如果D2和D1相差不超过7天,必须输出D2的月/日/年,即:你必须算出D2的年份。
另外,十二个月的天数分别为:1、3、5、7、8、10、12月为31天,4、6、9、11月为30天,2月在闰年为29天,平年为28天。一个年份Y是闰年的条件为:Y能被4整数;但如果Y能被100整除的话,它还必须被400整除。例如:2000年、2104年为闰年,而2100年、2003年不是闰年。 【样例】 date.in 5
11/20/2005 11/21 11/20/2005 11/20 11/20/2005 11/13 11/20/2005 11/28 1/2/2005 12/30
date.out
11/21/2005 IS 1 DAY AFTER SAME DAY
11/13/2005 IS 7 DAYS PRIOR OUT OF RANGE
12/30/2004 IS 3 DAYS PRIOR
第四题 roman
【题目描述】
在罗马数字中,1,2,3,4,5,6,7,8,9 写成 'I','II','III','IV','V','VI','VII','VIII','IX'。10,20,30,40,50,60,70,80,90 写成 'X','XX','XXX','XL','L','LX','LXX','LXXX','XC'。对于一个小于100的罗马数,可以分别写出它的个位数字和十位数字,然后拼接在一起。例如48可以写成XLVIII。
现在给出一个小于100的罗马数,要求重新排列这个数中的字母,得到一个最小的罗马数。
【输入格式】
输入仅一行,一个字符串,表示一个罗马数 【输出格式】
输出仅一行,一个字符串,表示所得到的最小的罗马数 【样例一】 【样例二】 roman.in roman.in VII VI roman.out roman.out VII IV
3
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库NOIP复赛模拟试卷(三)在线全文阅读。
相关推荐: