全部博文(92)
分类: LINUX
2010-01-23 15:37:21
Description 假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位为第31位),将第Y位开始的连续三位设置成110(从高位到低位的顺序),而其他位保持不变。对给定的寄存器值R,及X,Y,编程计算更改后的寄存器值R。 Input 仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合 Output 更改后的寄存器值R(16进制输出) Sample Input 12345678,0,3 Sample Output 1234567c Source |
|
|
Description 据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。 Input 最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:
在最后一个数据集之后,是另一行:ENDOFINPUT Output 每个数据集对应一行,是凯撒的原始消息。 Sample Input START NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX END START N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ END START IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END ENDOFINPUT Sample Output IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE Source |
|
Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用逗号","间隔 Output 按人名输出小孩按顺序出列的顺序,每行输出一个人名 Sample Input 5 Xiaoming Xiaohua Xiaowang Zhangsan Lisi 2,3 Sample Output Zhangsan Xiaohua Xiaoming Xiaowang Lisi Source |
|
Description 世界各地有多种格式来表示日期和时间。对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”yyyy/mm/dd”,此次编程大赛的启动日期“2009/11/07”就是符合这种格式的一个日期,而北美所用的日期格式则为“月月/日日/年年年年”或”mm/dd/yyyy”,如将“2009/11/07”改成这种格式,对应的则是”11/07/2009”。对于时间的格式,则常有12小时制和24小时制的表示方法,24小时制用0-24来表示一天中的24小时,而12小时制只采用1-12表示小时,再加上am/pm来表示上午或下午,比如”17:30:00”是采用24小时制来表示时间,而对应的12小时制的表示方法是”05:30:00pm”。注意12:00:00pm表示中午12点,而12:00:00am表示凌晨12点。 对于给定的采用”yyyy/mm/dd”加24小时制(用短横线”-”连接)来表示日期和时间的字符串,请编程实现将其转换成”mm/dd/yyyy”加12小时制格式的字符串。 Input 第一行为一个整数T(T<=10),代表总共需要转换的时间日期字符串的数目。 接下来的总共T行,每行都是一个需要转换的时间日期字符串。 Output 分行输出转换之后的结果 Sample Input 2 2009/11/07-12:12:12 1970/01/01-00:01:01 Sample Output 11/07/2009-12:12:12pm 01/01/1970-12:01:01am Hint 注意中午和凌晨时间的特殊表示 Source |
|
A B C D E F G H
V W X Y Z A B I
U J K L M N C J
T I H G F E D K
S R Q P O N M L
Input
Output
Sample Input
4 9
Sample Output
A B C D E F G H I V W X Y Z A B C J U J I H G F E D K T S R Q P O N M L
Source
这个题很爽,我的构思时这样的,分四个操作,往右,往下,往左和往上四个连续的操作,用right,left,up和down来记录每次往各个方向所到达的极限位置。这些位置在每一次“兜圈”之后更新一次,而line和colum是记录行和列这些也是一个循环才更新一次,这里没有用VLA而是用了动态分配,显得有点啰嗦呵呵,有一个要注意的是,如果是奇数行的话,right和left操作会执行两次,这里我WA了3词还一直以为是格式错误,汗,所以在判断到已经到中间行的时候break就okay了,代码如下:
|