数学建模社区-数学中国

标题: Contest - “顶嵌杯”全国嵌入式系统C语言编程大赛初赛 [打印本页]

作者: ultra1989    时间: 2010-1-6 15:27
标题: Contest - “顶嵌杯”全国嵌入式系统C语言编程大赛初赛
转载自:http://acm.pku.edu.cn/JudgeOnline/

( [0 s( v, z/ w( x" y+ }
Problem A: 位操作
/ x" U. @: |1 i" |
Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 1884Accepted: 580
% m- V/ U4 l# X& V- H) Y

Description

假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位为第31位),将第Y位开始的连续三位设置成110(从高位到低位的顺序),而其他位保持不变。对给定的寄存器值R,及X,Y,编程计算更改后的寄存器值R。  V, p6 v, k) N" T

Input

仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合
( I+ }9 ?1 B/ P$ Q

Output

更改后的寄存器值R(16进制输出)
7 O% ]- ^( P( a# K5 D3 y

Sample Input

12345678,0,3

Sample Output

1234567c

作者: 山心豆    时间: 2010-1-6 21:14
沙发,可惜做不来,C语言没学好啊!
作者: ultra1989    时间: 2010-1-7 08:46
Problem B: 破译密码
+ \" i: ^4 B& h+ d6 p5 {, D  pTime Limit: 1000MS                Memory Limit: 65536K
% |1 u& C8 k1 uTotal Submissions: 998                Accepted: 667) A- Z' F8 M1 m
Description; ^) V2 z8 Y! H# D8 I

8 m8 Y3 t8 Q  a' |据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。
% d1 T. ]! W% t) [9 R0 m5 G
: s" B; a; T6 V& b& `( v密码字母: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 ; B% c; E5 n9 ?2 X; _8 J% {
原文字母: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
5 Y- }; {& z9 S8 C3 ?$ I* Y7 r8 e
. ]1 V$ W) g& z5 R注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。* H( w6 m4 ~# {2 T
Input' D; e- ^% B1 x' z0 Y$ |/ ]" L! P; X

. g+ ^3 i# c* ^最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:
8 t6 @; e. c: Z! X5 M- P
6 R7 R% Q2 X8 {5 m4 E) J  @起始行:START! l$ m! I- R$ |# E9 h. Q& u* R
密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.
$ h. Q8 k2 G6 }# q; ^1 B: h0 G/ W- H结束行:END
& J) o3 V3 W* _- h- i0 j. \9 M" n% _# W! }6 n; \

- f& `4 H6 I! Q$ x% q7 h8 x. B在最后一个数据集之后,是另一行:ENDOFINPUT
2 t7 G' m3 J6 y% D1 jOutput! t8 D" E  g: I3 n+ y. l7 B. H+ ^
& H; Z7 h# e1 j- p
每个数据集对应一行,是凯撒的原始消息。
# F! r: B# P  K# G: `Sample Input8 S) W) Q; W3 R+ e; P1 e9 o
: B. ~- m1 ], v1 C0 k4 G
START+ {/ C  T  Y& K9 u1 ]  x
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX  W% v0 D( e3 }) k6 ]* j
END- g) s& J) Q. W0 n1 d. k8 M9 H
START; C& G' E# \) z1 Z. S; Z8 E; l
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ# @( R& `3 x! F# O* \3 L# s# P
END
$ V, l! D+ i9 C2 y& F$ r+ `START
( l/ ?$ C% n$ B# d/ [; |IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
& E' O/ P6 A2 E+ \( ]* pEND
& S/ r3 y: {+ e" oENDOFINPUT' b% h6 S) J9 |. g: y- p$ C
Sample Output
6 Q0 R/ z2 l7 n" \! n: x$ ?3 r9 e( p" F, S! S# H
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
* u; @4 _' _; {. d' ?I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
  u- I' {, B/ O- @" ?DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
作者: ultra1989    时间: 2010-1-7 08:46
Problem C: 小孩报数问题3 x  T, v' Q  K4 p- Y+ Z
Time Limit: 1000MS                Memory Limit: 65536K5 G' C# t# H% [1 Z, j1 t) E; q& a
Total Submissions: 1284                Accepted: 592/ Q* \4 q4 F' ~  `! d
Description
- Q$ r! [6 B* L4 J  [7 A7 v- w/ s
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
% |9 {" B. b* q+ J5 Z" Q. i6 uInput
' ?3 ~# U2 M7 {& m$ Z
. b# i3 p# x& O9 ~第一行输入小孩的人数N(N<=64)
" X$ e; g1 ~3 d# y  J接下来每行输入一个小孩的名字(人名不超过15个字符)
+ {8 G6 n+ t, K7 E% a- l7 [6 H最后一行输入W,S (W < N),用逗号","间隔! Z4 J. X( y9 r* V6 T
Output
' C, I- d0 l) W- d. T" F; y3 Q  d( ]; Z' h9 m
按人名输出小孩按顺序出列的顺序,每行输出一个人名" V+ ]! e2 I& y0 G
Sample Input% e* S2 ^2 y9 i9 d  ~2 s
4 s) X0 V2 V" ]: H
50 S1 D1 R3 C6 N9 ~0 n3 o2 N& L" o
Xiaoming
- [- |. Y$ v5 g: ]# f# i- J( b' `Xiaohua  k1 Y- ?; `3 {1 L6 o1 c9 e0 i; S
Xiaowang
3 C& N/ D) f4 e% r/ C/ N$ XZhangsan
1 f1 g7 v4 ~8 k9 v$ o  D+ ^Lisi
" W+ T* ?# s  b$ s: J& ?6 ^2,3
: B) q6 e& `" x1 NSample Output
* W8 @7 Y9 H7 i8 X9 ]& ?( e6 h5 O- V% e0 N
Zhangsan' [. V2 y# I7 b+ U! ~
Xiaohua. E  p& |! l' [, a! A1 E
Xiaoming, W9 k) ~8 @% [, y
Xiaowang
9 b5 z' P$ W8 E+ ~5 RLisi
作者: ultra1989    时间: 2010-1-7 08:47
Problem D: 时间日期格式转换
2 t: |6 b( m* E' D/ j9 b  {9 A6 @Time Limit: 1000MS                Memory Limit: 65536K
+ }$ ~1 p$ y6 e6 p# p. ?% VTotal Submissions: 1088                Accepted: 570# p5 I1 u4 v6 U: ?" L
Description1 I$ g  b/ f1 E( i* w

/ f1 k# B$ n0 i8 z# I3 W* F世界各地有多种格式来表示日期和时间。对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”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点。
7 [0 Q8 k2 D' ?) x- M6 I0 O) T' d" ^! i% O# I7 E
对于给定的采用”yyyy/mm/dd”加24小时制(用短横线”-”连接)来表示日期和时间的字符串,请编程实现将其转换成”mm/dd/yyyy”加12小时制格式的字符串。# F! r6 {7 T  f( r$ q5 p% z
Input
6 Q$ v7 R' k) u$ _3 D  f( R& R8 v' }8 q7 F5 q# L& u( \
第一行为一个整数T(T<=10),代表总共需要转换的时间日期字符串的数目。
5 j1 v8 a4 a7 q) a接下来的总共T行,每行都是一个需要转换的时间日期字符串。
: J1 [& l1 R; h+ COutput
8 S/ S; U0 O9 C' D- D7 Z+ F& Q- R  A) {
分行输出转换之后的结果
6 p* f- ^4 r% }. M0 D: KSample Input
, u, x& ?3 S* a$ }; U! ^" v7 u/ x4 [) X
2
0 |) l; F" A* Y- N) U2009/11/07-12:12:12
3 D, W, Q4 Y2 p9 }1970/01/01-00:01:01/ e4 {2 e# P' W, L6 e8 H
Sample Output
6 Z2 }4 p$ A* \7 H5 v& B" B5 y" j! g/ Y  F
11/07/2009-12:12:12pm
2 l! N. E5 g7 D( K01/01/1970-12:01:01am
0 u) j$ s% I: s0 \. y: C* c* Z7 UHint
4 L( ]8 P- T% d/ I
* Y0 N9 [& Q& O5 k1 _5 q1 v注意中午和凌晨时间的特殊表示
作者: ultra1989    时间: 2010-1-7 08:47
Problem E: 字母旋转游戏' ]3 S# S# h( {0 D
Time Limit: 1000MS                Memory Limit: 65536K
4 l9 _& m  W1 D8 k8 T3 E9 TTotal Submissions: 1477                Accepted: 5426 e, U; y6 G8 I! q
Description
9 o/ s/ x) g- n! Y/ H$ ^4 h9 p# `9 p0 d8 J( q: M: Z
给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:' Y/ f  q0 V: N9 D$ t* Y
   A   B   C   D   E   F   G   H
% H# Q0 [4 Z0 P: |& ]  b4 s4 b' q% R; ~2 ]5 x. A
   V   W   X   Y   Z   A   B   I+ V: T( F# X5 K( _; g. r
/ S8 J# T3 a/ J
   U   J   K   L   M   N   C   J- |7 o7 F4 [, z

' [4 W. T; f" v8 N   T   I   H   G   F   E   D   K8 v  l  U* t) }) J% j
3 X, d- ^4 [$ E. A2 L. w
   S   R   Q   P   O   N   M   L
+ X* \9 Z9 Z( s7 tInput; l' b. Q0 G* U+ L  [2 Z3 f
& e7 O2 W7 D+ X7 D2 R% y0 H/ y' K
M为行数,N为列数,其中M,N都为大于0的整数。
! [4 Y& j( }0 C" aOutput6 c! G3 P# |$ j
" j  G' Q9 u1 c3 P8 ~
分行输出相应的结果
6 z" s" i) B! U6 ESample Input* e. `' d( {: [, `0 H# g
- f" x- C( d9 t3 k1 q
4 9" y9 @% C* |* J' v, P& T. k8 ?
Sample Output6 v9 K! @; P# C9 f" w# B; d
( `1 p" ^3 {7 I2 q% P
   A   B   C   D   E   F   G   H   I
$ K, D! R! Z8 E0 ]/ p' y6 e   V   W   X   Y   Z   A   B   C   J
) }6 \3 ]) W+ Y' z3 i3 V   U   J   I   H   G   F   E   D   K
8 `) x  j7 J! s( J9 C% O3 E   T   S   R   Q   P   O   N   M   L
作者: 徐小培    时间: 2010-8-8 11:00





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5