数学建模社区-数学中国

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

作者: ultra1989    时间: 2010-1-6 15:27
标题: Contest - “顶嵌杯”全国嵌入式系统C语言编程大赛初赛
转载自:http://acm.pku.edu.cn/JudgeOnline/
+ A* r: ~$ U) z9 a* M
Problem A: 位操作

- R2 J; \6 T$ F5 l
Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 1884Accepted: 580
4 x& `2 k* e8 F4 U8 u' t; Y: V

Description

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

Input

仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合( Z7 s- S6 @+ v/ _' a/ ^

Output

更改后的寄存器值R(16进制输出)
# ~$ y. ]. P. I+ y, t! `

Sample Input

12345678,0,3

Sample Output

1234567c

作者: 山心豆    时间: 2010-1-6 21:14
沙发,可惜做不来,C语言没学好啊!
作者: ultra1989    时间: 2010-1-7 08:46
Problem B: 破译密码/ T) z1 y: Z6 }" m7 e
Time Limit: 1000MS                Memory Limit: 65536K
* {" x9 @- K; g. `! h6 n/ ^: z2 l! WTotal Submissions: 998                Accepted: 667
/ c* X* g! W# {$ A2 vDescription
9 F2 }4 V) ?2 S: c8 t, r
; @" d, J1 A9 N$ S( j5 k* I0 Q据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。 5 }6 w0 }6 W2 f3 y- E- X

, G( O" @; t' |+ a  K密码字母: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 ) Q! s0 A* v+ 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
3 w: _( b. M& G6 A
$ J' H* o6 P, i( ~4 z8 B9 ?注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。6 L& s  E- L' @4 ]  a+ s5 V
Input& x/ r  J" e% H* V/ [) M
2 v; P3 Z% u* ^; n( w/ S/ h
最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:
  D  d# i9 C! B: w- g4 h) U, y9 W0 |# H6 P
起始行:START, ^7 V& V$ d. z- b6 E& o
密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.
" W# [  T! Q/ E  x# _1 F" T! h! ]结束行:END
1 L) k( Z8 X$ Z
/ B% j8 H# u% }3 M: _% M
2 `2 g6 @# I9 k在最后一个数据集之后,是另一行:ENDOFINPUT# D# |2 E' d) ?6 e7 D4 P
Output: A$ T% I# o3 n2 Y3 R

7 x0 V, N0 l  ~! K$ ~9 c( t1 a每个数据集对应一行,是凯撒的原始消息。1 m9 |8 L. {( D' `' B  m' y
Sample Input
" q+ ]3 G- h4 N% |5 E* G2 G  F; A
) V, n- v+ h1 G9 n' @$ y: s/ s" A  ]) iSTART: c: T2 `  u. P. m3 a
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
7 J6 a: [' r2 X* _1 P3 P" b7 PEND9 P' u$ H" _# o& n
START' F' \4 q2 r1 ]1 g! f  L
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ+ t! w+ ]! m" X2 y
END
, Q; Y; \: S6 Y$ ESTART
# X' O3 Z% P* \& B& \IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
2 ]- L, y3 q. o- O4 r1 cEND/ a3 u9 x, w3 j, K
ENDOFINPUT
! E% }/ O: m7 B  }Sample Output
, A! W" d/ O- ?$ p4 X- t3 y, J5 b! t2 y2 Q" M4 `& `) p4 l1 {
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
+ l, R3 R5 e7 [) C6 \' XI WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME- `5 Z9 d0 i. ~4 [
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
作者: ultra1989    时间: 2010-1-7 08:46
Problem C: 小孩报数问题
6 F1 U# M6 |7 i# g( g" D8 Q; ?; ATime Limit: 1000MS                Memory Limit: 65536K% B( }- c1 }' z! s2 ?
Total Submissions: 1284                Accepted: 592, `4 v6 ?  C( h5 y; s: R( v4 q
Description
" ^$ j4 H# K  ?6 ?0 c6 _  J% j5 o7 s0 ?/ c4 x5 b7 p
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
! B! f0 v- K4 G2 C/ _9 b- RInput
& m1 c) F# \, G7 x
: L, i; f, J3 l第一行输入小孩的人数N(N<=64)
) }& _9 i' ]+ A: D6 [6 M, J9 U" a! N  Z接下来每行输入一个小孩的名字(人名不超过15个字符)
% k$ `4 G$ H" J3 A: @7 p最后一行输入W,S (W < N),用逗号","间隔. i, l8 p8 I8 X* x% T! e
Output
1 Y# e/ I; Y" Q6 ]8 m& b9 n& R! {. B) _0 s0 W( F$ J
按人名输出小孩按顺序出列的顺序,每行输出一个人名% x, q9 V; t3 u, L0 t& j
Sample Input: Y9 Y( R8 S& x
1 `/ C) Q9 c+ z0 V3 D
5
1 v+ f. A& b# Y* ?Xiaoming
, }3 Z( C) B7 u0 kXiaohua  S6 u/ t0 z/ V0 E+ {
Xiaowang
  m/ Q7 l+ J5 t) DZhangsan
$ t- Q1 z+ H3 g6 N/ k2 SLisi3 |6 V9 Q1 B: r( D" ~
2,35 j- O4 _: L8 L$ t! Z8 E& e6 M
Sample Output
0 E) [* U$ l6 }7 M/ A, z
$ ^6 B0 R/ T: P+ n, C; hZhangsan$ a8 V0 J/ w" K7 S/ M
Xiaohua
* S3 H0 b* i: xXiaoming
+ e2 q, @: ~5 e) _9 hXiaowang
  l* Y( q$ Q0 |3 ?3 nLisi
作者: ultra1989    时间: 2010-1-7 08:47
Problem D: 时间日期格式转换
7 ]4 V5 F9 _1 O3 bTime Limit: 1000MS                Memory Limit: 65536K
: c" X0 Y9 Y# \: K! lTotal Submissions: 1088                Accepted: 570) g$ }# X4 R! `/ r3 ~3 b7 o
Description& o& F% b9 `/ b' _* [
. I, C1 d! P  M; Z
世界各地有多种格式来表示日期和时间。对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”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点。 - q9 A' a0 E) Z( @

* F1 R2 [  H* y3 O; P% {, ~- I对于给定的采用”yyyy/mm/dd”加24小时制(用短横线”-”连接)来表示日期和时间的字符串,请编程实现将其转换成”mm/dd/yyyy”加12小时制格式的字符串。1 v  S& O5 f8 H3 |( }+ G
Input
# g4 o, z$ C9 w; x
3 J% ~1 g, j- |* v' D/ u第一行为一个整数T(T<=10),代表总共需要转换的时间日期字符串的数目。 6 X* K, F( v8 f8 C3 W7 B
接下来的总共T行,每行都是一个需要转换的时间日期字符串。
$ M! u7 c- L8 @( B" mOutput
) q% l+ p8 S% Y$ r; C4 [  x0 B; F/ x3 W. s
分行输出转换之后的结果
8 v; A2 u0 p0 G( @% @Sample Input
* [& H* @9 a# c: F, R) N) g% ^, W1 g. p
2
7 _% c$ _) U" I0 H) d2009/11/07-12:12:12
. C7 X) ^. @. I. n3 o* N$ ?1970/01/01-00:01:01
/ I% ]9 C) x1 C. m+ F, o% V2 B$ MSample Output
8 K7 }4 y- \5 ~# n0 G% z* q( X- N  M$ O+ o1 a
11/07/2009-12:12:12pm
- p3 U1 r  p" V/ @2 K+ D/ f- v- o7 h' X01/01/1970-12:01:01am
9 N* }: m: ?  W  m4 N& e! OHint
7 g7 v( H) {4 E+ o/ _6 d, J
, T$ Q# `  Y3 _! c* G3 R# g注意中午和凌晨时间的特殊表示
作者: ultra1989    时间: 2010-1-7 08:47
Problem E: 字母旋转游戏8 x4 W6 f% D3 x0 s) y, p% O* T
Time Limit: 1000MS                Memory Limit: 65536K
$ O2 S2 p1 W- C1 f, `Total Submissions: 1477                Accepted: 542
7 [: o, t9 J3 }: }! e! T3 IDescription
. j6 X2 a# O7 s2 A1 r
! w9 {4 G- ~( d给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:# Y- H% d9 X4 t  U6 h2 j
   A   B   C   D   E   F   G   H
& D4 x, p: T8 G+ g
' s0 _4 a$ H- P* j4 c8 h: r   V   W   X   Y   Z   A   B   I: \0 b( |! t5 a$ [! }

" V% Z2 [( {4 B5 K8 ~' C1 @2 c   U   J   K   L   M   N   C   J
' I: j5 }. K: M% Y: y; l5 f! f$ k8 r0 n, A% ]" f
   T   I   H   G   F   E   D   K7 S! g8 T+ |: w- _2 P' Y+ @0 ~
% E% l3 z, b6 C9 @- R( Y9 r
   S   R   Q   P   O   N   M   L, V# I5 Y6 `; o& n% c/ e
Input
* @  q2 V! h: k* g. `( `: z& h: v1 S. e# {0 S  t
M为行数,N为列数,其中M,N都为大于0的整数。
+ y4 J( k; ?  [7 ]7 G- NOutput+ v4 M3 g+ i5 N! Z! [! x6 K" j

- n7 ^0 F2 n7 k2 j" @! V1 x) o分行输出相应的结果
4 W' N4 W( X; M/ rSample Input( R& H4 p  z1 ^- ~$ p

3 d5 H# D) m% y+ E, B; `/ l. h4 9
) y/ k9 m& o4 x+ X& oSample Output
( z! i+ @2 T2 B5 |9 Q0 ?2 s' ^  `- H* {' t
   A   B   C   D   E   F   G   H   I5 w9 U3 f7 t. w! S, @
   V   W   X   Y   Z   A   B   C   J4 L9 Z! E0 J+ H$ v# A5 r
   U   J   I   H   G   F   E   D   K1 T. B2 f9 |4 m  u; Z) `& \
   T   S   R   Q   P   O   N   M   L
作者: 徐小培    时间: 2010-8-8 11:00





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