在线时间 5024 小时 最后登录 2022-11-28 注册时间 2009-4-8 听众数 738 收听数 1 能力 23 分 体力 77545 点 威望 96 点 阅读权限 255 积分 27190 相册 1 日志 14 记录 36 帖子 4293 主题 1341 精华 15 分享 16 好友 1975
数学中国总编辑
TA的每日心情 衰 2016-11-18 10:46
签到天数: 206 天
[LV.7]常住居民III
超级版主
群组 : 2011年第一期数学建模
群组 : 第一期sas基础实训课堂
群组 : 第二届数模基础实训
群组 : 2012第二期MCM/ICM优秀
群组 : MCM优秀论文解析专题
Run Length EncodingDescription
: U; s9 x( M; m8 e$ V4 C
8 @) F. C* z+ x2 h, X0 R* R Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
( b1 t% ]: s+ D1 m3 o
# D4 [4 q( D2 q+ v l: L Any sequence of between 2 to 9 identical characters is encoded by two characters. The first character is the length of the sequence, represented by one of the characters 2 through 9. The second character is the value of the repeated character. A sequence of more than 9 identical characters is dealt with by first encoding 9 characters, then the remaining ones.
& O0 v0 e4 g* M
, B/ S: }7 a. `6 A/ D Any sequence of characters that does not contain consecutive repetitions of any characters is represented by a 1 character followed by the sequence of characters, terminated with another 1. If a 1 appears as part of the
* Z( V# q" `; q0 X* V( A' z sequence, it is escaped with a 1, thus two 1 characters are output. 3 {5 M% B }) H
. @1 Z, `: Q( P _9 P. `
Input
, f/ {2 V; z( V; r. ]" C / f" u4 V( d9 U) F& ^! P1 }% o
The input consists of letters (both upper- and lower-case), digits, spaces, and punctuation. Every line is terminated with a newline character and no other characters appear in the input.
" c: n1 \( ~& s T3 B- v: u5 ]7 ^; y4 ]
Output
& R! E, b5 l& y- ]6 A
1 B! u" o7 \4 t" ~' w2 v- T1 i Each line in the input is encoded separately as described above. The newline at the end of each line is not encoded, but is passed directly to the output. - ^5 c: ~2 v% W/ X' q
5 R/ g. O" `1 Q+ E4 ~. [5 s& N 输入样例
) w4 H- F8 b6 t" u+ K AAAAAABCCCC0 ]6 ?- C7 G% u. F
12344
! p8 {9 a+ ]/ ~
) L2 D; Y. ^) r5 M4 o
* x# y$ J6 V( p1 O6 A 输出样例 1 \( ~. y7 I4 ?& ^) R
6A1B14C! H2 {: ^- Q( U! m. j+ N7 ]6 A
11123124. x4 r$ b& Z' m
- V( e) C) G. m" u
* t( n* S; T2 J( k/ c Source0 r3 y3 J X) [) b/ H
1 w- m& G* F( K. y/ @
Ulm Local 2004
9 T% \- C9 c" s6 S 2 _9 W% k7 U5 G
example1:
. S& H# N) [, S) q7 c% D #include<stdio.h>
# C, E" X9 r7 L4 a3 E% f" W #include<string.h>* S4 h+ x! {6 D
void main()8 D" Q! } ?. }; ] J j
{ int i,j,k,n;
+ D' b( | c/ }& j0 |! [ char a[50];* t3 f; T9 N6 H3 m% }8 R& V7 x
gets(a);
; c- C3 ]+ d: K. D n=strlen(a);
" |) Z( t3 i7 J6 p. ?( u
- Z5 e3 Q v6 ^" U! y for(i=0;i<n-1; )
3 {! c( k2 P& b: `" s if(a==a[i+1])/ y: e+ o% `- n+ w
{ for(j=i+1;a[j]==a[j+1];j++);! d1 b; D, v; y. Q
printf("%d%c",j-i+1,a);
# g3 `- j# Q+ z8 O. M% X+ \; l" i. c i=j+1;
m& K% }; Z r8 I, N9 r3 v7 T }+ ~& ]+ G% u. j' {) R9 g" v8 q7 d
else6 t0 V0 Q: K$ o) s
{ if(a==1)
8 W; t) \5 [% O- i) x5 V. P6 d { printf("11");
9 {" [$ m. W( i! G, s. O' \$ j i++;
/ `) G, }) L6 {6 ]6 U( C1 _ }
. ?# K6 a6 q. T8 d$ G! ^. n else; O: a1 ^$ o; E% H/ u; ]* {8 k8 x
{ for(j=i+1;a[j]!=a[j+1];j++);/ S# i# i: m6 u4 L9 P# y* G
printf("1");
: ^% O. q R; |1 q! C& h' l5 Z if(j==n+1)
" [# k' S& z2 m j--;- K k8 i# Y* O. U7 K2 s
for(k=i;k<j;k++)3 R" K* o9 i2 z+ h
printf("%c",a[k]);# o3 G/ Q8 k% p L& @
printf("1");
" z* j& Z" U9 G i=j;; h9 y& W; z' x& n% I
}. d/ L' ] K d( W2 i! R
}
" r2 d* }, Q; Q2 r9 R8 X% U if(n==1)
% F5 q Y: U! ^/ h) e4 \" c B3 s if(a[0]=='1')! L; E4 O! p+ s2 X3 ?" Y" w% {
printf("11");
2 h4 j, N6 C8 A, ] else; `" [* U* K+ U* {' {
printf("1%c1",a[0]);/ o' y% b/ g# E& `
printf("\n");9 T2 N, H& D a* w% I( ^* O3 @
}
5 \! F7 F5 Q7 L, X2 u3 `6 N. a 评论人: Colby 发布时间: 2010-3-2 12:04:06 #include<stdio.h>+ ~7 t2 z+ g8 V% ]6 t, O8 v
#include<string.h>1 c) F( o o: {
void main()8 q% T5 L/ _ F, O; q
{ int i,j,k,n;" M7 m0 F" ~5 @+ I
char a[50];5 j+ d1 H8 i s+ Y
gets(a);
* F2 h8 P( \6 b- \6 g1 M. Y% \ n=strlen(a);
8 `% D* s- ^7 o7 R ; ]5 b2 ^' ?; _: _$ U! }' S
for(i=0;i<n-1; )4 n8 R# ^" P( }: m/ R, E
if(a==a[i+1])
3 ~3 ^- ]+ j- D( f4 c" c- V2 J { for(j=i+1;a[j]==a[j+1];j++);! g$ L7 g8 `. i! [. e) e
printf("%d%c",j-i+1,a);
9 ^, I3 k& {( z1 y/ m) A3 Q. e i=j+1;! z. g; @3 ^5 K3 A9 W( [# u
}
* P6 O5 }6 D3 h1 C& ^ r, {9 b else" \, ^% ^) C- Q6 J- [) N& t' y2 G
{ if(a==1)3 ~2 b' m1 ~0 P
{ printf("11");
+ D; V# {1 _0 Y i++;
" u# g( D5 c5 o: E }, c9 b) U0 o' {2 c% n' ?
else
+ U& f; C+ ]' k+ B% E# ~' o/ u) Z/ Y { for(j=i+1;a[j]!=a[j+1];j++);% J7 e: ?0 ~: X" T* j
printf("1");
+ r5 P0 Y, f' `9 Y if(j==n+1)
: b! V& W: W/ Y, z j--;( Q \# u- f9 i9 D
for(k=i;k<j;k++)
" S- A1 I+ f/ m% y8 E printf("%c",a[k]);
& F% U' X1 Z+ y. P printf("1");
$ w& |5 s) y3 ?; X0 H* s i=j;
9 l* ?* F" M$ |6 Y, k6 l }. J5 @4 \3 v; `8 l5 `8 m- s, T
}
2 f3 S: M7 x5 M+ }9 ` if(n==1)
4 p6 B; ]* q5 w8 C7 L3 t if(a[0]=='1')
$ j* l* B. X5 _7 ?% }' Y printf("11");
% l7 z6 n3 d9 ? else+ @% k$ o/ H. T* s. u9 S J$ B8 g
printf("1%c1",a[0]);9 P8 z1 \2 Z( v4 R- j5 S* s
printf("\n");
* l' {8 w4 C0 B7 e/ V5 M/ B: p3 a) C } example2:#include<stdio.h>$ {# U+ M: G+ g- I, m% f
#include<string.h>% ?+ }8 g! N! |# f* n! s
void main()) Y, J& C8 z" \) C+ C& f2 N. i
{ int i,j,k,n;
, B& c5 D% P* Q6 L' Y( I- Q char a[50];
( n2 H5 U: [5 W& X- @5 K O gets(a);. u. z6 W2 F0 \7 `) C
n=strlen(a);1 ?0 e( z: ]; C- u# |
; d/ t+ O# e$ P; X; N for(i=0;i<n-1; )
1 s; k a0 f' S+ t) W if(a==a[i+1])
7 {8 K( w. t. M8 C' E! `) w( R { for(j=i+1;a[j]==a[j+1];j++);
# m0 R( A: @) ?" u$ I printf("%d%c",j-i+1,a);
0 S6 p( d& g9 G( ^: A i=j+1;- B$ f) ]) r! Q
}
3 ? P+ e: l' { else
* U9 B4 Q' a3 _5 L, } { if(a==1)- e# L$ a8 p* g( r. x3 \& Z4 f# B
{ printf("11");5 K$ N) [" @6 W! J. r8 O
i++;+ v: h% `7 f1 o; g" {. [! j
}
2 Q) \9 q+ J9 B$ B% u else j9 B j9 B7 ?4 x9 d
{ for(j=i+1;a[j]!=a[j+1];j++);
! M2 y& v0 D6 O8 g1 a! ]9 ?, a printf("1");
! m+ k) G1 V9 t2 R3 J) D if(j==n+1)" e4 r: b, x, J7 N5 V- n
j--;. \) n$ |$ a3 S( G8 g. ?
for(k=i;k<j;k++)6 y: b. v9 [, N, G6 _: W& J \
printf("%c",a[k]);; }' a" ~; ^+ b* j
printf("1");
8 z1 \- i/ m/ O8 v' d% I5 \7 G i=j;
6 v5 _+ k* ~! r7 j6 U9 y. \( O9 w }: S, x; C( T; [0 w5 P0 j5 I: r
}
( L# D- N, M# B. n' J- e* ^ if(n==1)$ ]$ r7 M5 ^" G7 F! d3 E/ q# p: u8 D
if(a[0]=='1')
; [. @: N+ ]- w" `! E0 z printf("11");
; V6 z; w* ?# E8 o( A; L s else1 N% q2 Z$ \+ ^
printf("1%c1",a[0]);4 I! ]( i1 }; W; K0 d
printf("\n");
5 T8 Z7 {- t v# Y$ h8 f+ ^ }
9 S( }% C4 g- ?8 r0 O( r5 Z, } example3:#include<stdio.h>
1 H4 b. f% Y4 f$ w #include<string.h>
' Z6 o# q' R' ] void main()
, P$ l6 I* v/ w! ]1 [# C { int i,j,k,n;+ d! y" h. F6 r a0 A4 `! j( {# p
char a[50];$ x2 o, z# N4 ?6 Q$ E9 s
gets(a);
) n7 z, e: b) T* A6 h- Z n=strlen(a);
. K' I) u3 K2 P
5 Y: H4 W5 _2 U, [. f$ X for(i=0;i<n-1; ). G" W; w, _8 s+ f) x4 `% j
if(a==a[i+1])* h+ X2 t) P2 W: B
{ for(j=i+1;a[j]==a[j+1];j++);
, O- `' _$ m0 A- e6 ?$ }5 z printf("%d%c",j-i+1,a);
6 c. k3 T j `+ }) d$ _ i=j+1;
: V# N! g+ f; m1 z' ` }
% y/ {! q0 R7 B! E. W4 g% z4 M# I else4 n0 Z: P' J8 i. E; d
{ if(a==1), x( I! \; j& v2 Q" I
{ printf("11");
* C4 E/ x/ B+ ? r9 F: d# E) I i++;
6 p1 }3 g8 \; c }+ ~ j4 u% v, Z! U) ?/ z% s
else- m" f3 I6 Y* V( l; f# N
{ for(j=i+1;a[j]!=a[j+1];j++);5 n' L! a' h4 v+ M2 T. [* S E4 {2 `
printf("1");7 u* d( A( g) Y' J7 A( X% }
if(j==n+1)1 r [$ `: V7 k7 r8 H
j--;
: [. X- P6 ^2 r' v g! v1 U2 b( b for(k=i;k<j;k++)" _7 _6 o2 v* R" ]
printf("%c",a[k]);3 m w# F4 A2 J+ q) b$ ` A5 a
printf("1");
$ n3 t) z; a: u) m% B U i=j;3 z% D( G( A) C! v5 q: {$ `
}$ Z U. O- C8 ?: X9 P; c7 _/ x: [
}
" U8 a( b- ^2 I9 ? if(n==1)
; x- Z1 _4 F' Q" \: \2 u- J/ H if(a[0]=='1')
/ s( `* n" ~' [# U1 @! y% W printf("11");
( i3 `/ y0 t. D2 Y5 v* X0 p else
l0 \: B( e' K" y6 X z# ~, _ D printf("1%c1",a[0]);5 O* s; }# L/ Q0 R
printf("\n");5 D: n9 [9 {7 K9 H3 {. |8 A
}
0 ~/ _' X* \' h; p' }# ? 来源:编程爱好者acm题库
zan