数学建模社区-数学中国

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

作者: ultra1989    时间: 2010-1-6 15:27
标题: Contest - “顶嵌杯”全国嵌入式系统C语言编程大赛初赛
转载自:http://acm.pku.edu.cn/JudgeOnline/
. U( k  [1 L  w( l1 Y8 F/ f
Problem A: 位操作
( B0 ~2 b- d4 T9 H
Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 1884Accepted: 580

+ O/ Z% \+ K% ~0 s# D5 a9 v) _

Description

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

Input

仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合
6 o9 N# h) o. k8 _; l3 c

Output

更改后的寄存器值R(16进制输出)
! \# K- z$ }* _, C

Sample Input

12345678,0,3

Sample Output

1234567c

作者: 山心豆    时间: 2010-1-6 21:14
沙发,可惜做不来,C语言没学好啊!
作者: ultra1989    时间: 2010-1-7 08:46
Problem B: 破译密码
; z3 m3 e" K/ ^. j9 K! }: BTime Limit: 1000MS                Memory Limit: 65536K
8 ]# |) X" y' ~Total Submissions: 998                Accepted: 667
8 U: N" h( K! |) S5 ~- \' _7 ^Description
; i3 m9 r4 Y2 |/ f, _' P: t% P1 u' a- W4 D' Z( c
据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。
. i7 ~5 s2 I  s  G" N  Z  Z0 B* \( z# D& j" x
密码字母: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
+ e' M4 [- O* L; ]! T  L8 y原文字母: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
0 v& Y/ g8 K" d
! x' r$ n5 g& j注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。
8 ~! ^4 r' \( i* ]  zInput
* b& x$ F$ s/ o) T/ P! b  o  I
2 F6 w9 y1 O* b# a& b6 w7 o最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成: ! v& U& E6 t4 Z+ }' {* B
" k7 j/ C9 k( Y: M
起始行:START
8 L7 f' w' w' ?6 a, k! I" q密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.$ p7 R% K( w3 R$ _, P, j
结束行:END' M4 g, }6 l" @( a& t0 I( W
* F1 a/ ?  f% H! M( V9 m* [
7 ]9 g; S' A% l$ {2 ]# y
在最后一个数据集之后,是另一行:ENDOFINPUT1 F: d0 C: ]/ t9 q
Output
  Z' k6 |+ Q; `4 r
* k1 j8 O  [1 i9 o每个数据集对应一行,是凯撒的原始消息。, T0 U( P$ m8 B! r) l1 g
Sample Input
7 U' {3 D# q* Q3 P( H1 b1 N
! s$ a9 m: L8 sSTART2 G- S% F! h- z; U6 z0 H* C& L
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX* G4 V- q6 N: D
END& L5 T# |# M! M% Q% I, I
START
7 Y! f& M/ D  h- oN BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ; I1 L( D2 ^0 k' H8 q: U: w8 B- N
END
, W+ L8 J$ ]! h  p3 f' ZSTART
* Q( n% M. |, L  {. _, }- v) w; ^IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
, A, ?6 i5 W' lEND1 R, n+ e: }6 u5 e" p4 w; m
ENDOFINPUT
& f0 S8 I* w# m3 i& Q: YSample Output' W) U# f4 Q# \, B, X! Y6 T
; m! B: a& S+ |  r+ \$ d- G. p
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES, Q; ~5 _" [) ~7 a2 P3 a9 a& V
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
( E$ T% u/ S! K7 pDANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
作者: ultra1989    时间: 2010-1-7 08:46
Problem C: 小孩报数问题
- W! G) g7 T* R+ ^Time Limit: 1000MS                Memory Limit: 65536K
% ]4 p% k$ ^. A' vTotal Submissions: 1284                Accepted: 592* s* Y* U6 l! S5 Z3 O% @' {, F% y
Description5 V/ n9 X! s5 ?1 [: y$ p0 _& ^/ F

8 ]2 d" g2 Y* t% e4 B, d8 O有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。- R: ~1 W- U9 S* V. D3 t, ~6 e
Input
6 c7 t! R" r/ I/ y  M: y2 e% [, t, h# r
第一行输入小孩的人数N(N<=64) ! N1 B8 o  N0 |
接下来每行输入一个小孩的名字(人名不超过15个字符) ' q- ~- j/ _! ]4 O0 b3 X9 E2 ?
最后一行输入W,S (W < N),用逗号","间隔( T) g( @7 }" z$ q' d2 ]+ J: x
Output
: b8 {! e; Y, ]( v9 I% E& U/ P& a; A6 T5 L" z' h- v
按人名输出小孩按顺序出列的顺序,每行输出一个人名
" @0 ~' ?: N( J, ?Sample Input
, f  v" [0 d/ ]; D+ s
  P+ W6 H" ]* }6 f1 m# X+ @5/ L+ [1 w' W* K( Q9 v
Xiaoming6 C& T  r) @6 a: e; w
Xiaohua9 K+ k" {! H/ ^- b, f: |' E, P4 y
Xiaowang
/ J) a" r! ^5 `$ p0 BZhangsan
  O/ L- `2 [" K8 qLisi
2 C/ z8 ?9 H0 q8 p/ P1 p8 W2,3
& n) O1 g  y+ X. }7 O8 ]5 D( ~Sample Output
; Z; w* Q% m/ Z. ?, |! |* p, m2 g7 i) a5 f, _
Zhangsan" N5 X: ^9 d" M4 t# O; ]: E& s+ b
Xiaohua
' ~) u. U6 V; j. |8 j4 xXiaoming( g6 `9 e# I. _2 K1 ]% k3 j6 T
Xiaowang0 e& x9 b% ^  I  {, {- ?
Lisi
作者: ultra1989    时间: 2010-1-7 08:47
Problem D: 时间日期格式转换
" O" T& I7 I: |2 K5 eTime Limit: 1000MS                Memory Limit: 65536K
- }9 s+ S3 [8 @+ z9 S: rTotal Submissions: 1088                Accepted: 570
  p5 e& _5 i3 U9 o. q+ O4 ]Description
0 \* g# G, }# c6 o
1 w9 K+ j5 z! `. @  M世界各地有多种格式来表示日期和时间。对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”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点。
* }* T4 G, w* S" Z: S
# m% ?- p& N/ C6 F% o9 P对于给定的采用”yyyy/mm/dd”加24小时制(用短横线”-”连接)来表示日期和时间的字符串,请编程实现将其转换成”mm/dd/yyyy”加12小时制格式的字符串。
. M( q6 L  P0 D! i" W' j6 i; n1 cInput
- G) e9 Q0 E3 i0 u3 R: H0 d1 R5 n2 M5 s, p+ g* S
第一行为一个整数T(T<=10),代表总共需要转换的时间日期字符串的数目。
: X2 P0 t6 M' {  ~" Y接下来的总共T行,每行都是一个需要转换的时间日期字符串。
: @* s* W! h9 p1 Y+ kOutput
5 J. y2 R; y' T1 R4 X; J' P3 |8 Q% g5 V
分行输出转换之后的结果
8 L% A" u5 ?+ L# i7 u! mSample Input
% E- P" p, ^1 T- {1 x" |# i# F" A7 |9 a4 L: X
2: |3 L; B1 X+ W# ^. E+ d0 p. u
2009/11/07-12:12:12' O" k) R5 r9 p1 x$ Q' Z
1970/01/01-00:01:01
+ A" U, d' h3 W; n' K; p5 f3 ?Sample Output% _' [/ [  s" O$ n; s' ^

6 i+ h- `+ |( ~8 Q' {11/07/2009-12:12:12pm8 I4 }& z& h  V4 x7 ~1 z" s
01/01/1970-12:01:01am. W+ }( _! w$ s) A5 i, P
Hint
7 g" t" w1 H& l. N, s" W0 w. f
% \( T% x" r" G; i3 Y3 ]注意中午和凌晨时间的特殊表示
作者: ultra1989    时间: 2010-1-7 08:47
Problem E: 字母旋转游戏
5 D. S2 r- X( yTime Limit: 1000MS                Memory Limit: 65536K
) F9 R) }" w0 U! y% K, cTotal Submissions: 1477                Accepted: 542
( |: Y: `& W* @* A2 WDescription" E' l; F4 ~6 d/ c$ J; F) Q+ O
. ]. u* F: |  [; t4 t
给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:
+ q9 R+ v3 d, j) N   A   B   C   D   E   F   G   H6 Q- I6 B; R- Q1 C2 i9 R; z" n
/ I  D( j5 ]5 w2 i
   V   W   X   Y   Z   A   B   I
8 Z7 O0 _4 d, V/ U5 ^- d* F  T, Q. x9 K7 E7 c" Q* _
   U   J   K   L   M   N   C   J( ]/ ^, a' A3 Y) h

' }$ b3 X! F" q7 h) M   T   I   H   G   F   E   D   K, x+ U8 y2 ]& M! Q& h$ H, w  Y
' v7 j# v# u: n6 N
   S   R   Q   P   O   N   M   L# r2 y5 w# C( Q$ p+ W7 E# y
Input
/ K0 E4 U  S/ Z0 J3 ]; Y1 g) V6 E' b
. S, g) _! j% e  }M为行数,N为列数,其中M,N都为大于0的整数。
# n' K6 g6 p* J3 Q/ ^, C  ~Output1 S/ Y* g& V( ]( U
, _% N4 c0 S" Y# M
分行输出相应的结果/ E# y; Y" y* H; h2 u! k
Sample Input5 a! i9 U5 S8 r, o

+ p+ `# h$ K! [6 j* q4 9: z5 A. h" ?( |" Q) C  V; S
Sample Output
6 t$ o. [  G0 j
- W2 M- M! z+ L3 q+ c1 o   A   B   C   D   E   F   G   H   I
+ y& f7 Q7 T: S+ i6 e- Z- ]" v   V   W   X   Y   Z   A   B   C   J
' A+ Q* d; W# k# f   U   J   I   H   G   F   E   D   K& J0 u* W) y; O5 S8 Y' @4 H
   T   S   R   Q   P   O   N   M   L
作者: 徐小培    时间: 2010-8-8 11:00





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