在线时间 5024 小时 最后登录 2022-11-28 注册时间 2009-4-8 听众数 738 收听数 1 能力 23 分 体力 77273 点 威望 96 点 阅读权限 255 积分 27108 相册 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
5 O" o& C( S6 b o) } . H- Q @9 D" f, l
Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
, T' C8 }$ v: z3 h/ ^
6 j B/ _1 e6 @ 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. ' w" D: B! {: Y4 T& z8 f
7 k1 ~# o9 a6 | R8 h" `# t 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
4 z; o* n* A+ U* z( s/ n3 j sequence, it is escaped with a 1, thus two 1 characters are output. " [0 m4 Q& D6 T& |
: d" O C K* v7 s Input
0 A0 p% s, _ e% w2 e8 v
( R( g3 H" o( S$ G% K& p/ b5 U; I 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.
2 m, L& E8 Z N( x: n/ f/ D
' E) V) {; D9 t4 J _2 } Output ( M( e% x2 w/ p7 W f: Y
6 s c. n: E% W( m7 ~ 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. % S8 w: h) ]' M
8 `- X6 b4 J8 @0 d
输入样例
0 o1 g0 L7 M7 | w6 E6 O AAAAAABCCCC
8 }, X; S& ?4 W2 k 123445 ?5 t. e7 A+ d# ^
) V4 s3 J9 F. }: r8 g0 R # U& B; Q1 W. `4 {2 _
输出样例
( m. _* r2 x6 s3 V9 a$ n! t! B 6A1B14C
1 \$ B+ r9 R. E# J1 i9 P 11123124" R0 J2 B- [) q0 Z: T% \
- s# l0 |( g/ F7 D7 X
& {9 G- w$ R# V3 Q
Source: y6 v7 Q9 R- C, n9 t+ ~
0 _. L! L8 O# Z( H4 d
Ulm Local 2004! F9 T0 s3 I$ o8 y8 ~, r- p% e/ T
5 j, }8 y4 x% _: f
example1:% p. ^% e! d( \3 _" z: B
#include<stdio.h>
2 y- U$ r9 L" T7 k #include<string.h>
" H4 c% z6 @: p, b$ H void main()% i6 o3 M) W0 b( s2 p
{ int i,j,k,n;
# i% O% {, D' W char a[50];, h0 Q% T, S; y0 J$ O/ P
gets(a);/ A3 Y! v5 _9 z- q
n=strlen(a);2 ~/ z4 b& c; }# `1 N
* [5 \5 U, D5 S" B; \ for(i=0;i<n-1; )
( Y' u. D$ \5 p# A if(a==a[i+1])0 ^6 K8 I" o5 a0 \
{ for(j=i+1;a[j]==a[j+1];j++);
0 [. f- Q! d$ ?/ o/ Y# p9 X printf("%d%c",j-i+1,a);
$ _+ v- N# v3 ^! {$ Q* w* `( O i=j+1;
' @1 e. @4 ~5 O; _" i V }
2 C* A2 g$ _& C3 V6 a else# f2 X% k& Y1 D& ^* K
{ if(a==1)6 P6 d* }& w% ~ s" o8 m
{ printf("11");! I$ _8 Z2 M7 x3 i A
i++;4 |9 h7 r0 D6 R k+ w3 `9 `
}6 k2 A' V ^/ z1 Y+ T; @1 T: P
else
. r+ {- N v5 c) k { for(j=i+1;a[j]!=a[j+1];j++);. N3 ]- j& e2 f
printf("1");5 L J6 h' j1 S
if(j==n+1)
* I$ t9 R5 h0 k0 P0 n8 ^ j--;
5 Q2 S- I4 |1 }5 I/ R for(k=i;k<j;k++)
+ z# D `# {5 f6 F printf("%c",a[k]);
+ _# `: a/ m$ a1 |7 X' } printf("1");
7 \) r/ ~* q' N4 K1 N i=j;% h. Q& R- g) x2 @: A, E
}2 u5 D: q5 T6 G; s% [+ Z+ g
}! S' j8 m( Q! ?! F' w
if(n==1)9 g+ \6 f V- M
if(a[0]=='1')
4 F8 e5 v# z3 s' D8 F% F printf("11");- T/ F* h8 J% k3 n
else
& v5 H: H$ z% _# [5 G printf("1%c1",a[0]);8 V( F( ^ d9 T! @4 r4 E F
printf("\n");
: b$ i9 B' z+ x% c1 g }2 x7 t7 |/ [& F
评论人: Colby 发布时间: 2010-3-2 12:04:06 #include<stdio.h>2 B5 Y9 O; c9 `" |1 P
#include<string.h>
" S& q+ e" p. B _ W void main()
- G! m! E3 x. J. [! A { int i,j,k,n;- f; F4 y9 V1 l7 f1 ^3 ~8 r* s
char a[50];
. E8 w7 E6 }' \- F+ r" z gets(a);4 {$ E& r( D- o5 H% d, w- f7 u
n=strlen(a);
3 { S6 R6 }6 l) R2 {
& d2 C# |7 N# K& i) G9 E* q# ? for(i=0;i<n-1; ) T9 y* u/ O, C
if(a==a[i+1])# o2 p; Q3 N+ r, m
{ for(j=i+1;a[j]==a[j+1];j++);/ m' n# n( X- S$ ]$ B- x. b0 _
printf("%d%c",j-i+1,a);; k1 s2 r0 j T$ T% ^, ]
i=j+1;+ u- I. ^5 \ [! _
}6 v( [, Y6 A8 q* A3 p- Y& s+ c
else
8 m, I5 p& z( E1 ? ^ { if(a==1)( b4 U6 ~9 r$ @$ ?, m8 N! o" g
{ printf("11");# e" l/ V& M: Q+ m
i++;! z9 m* K1 M' I
}! {/ U( W/ R2 C1 P+ }5 I
else0 W" u' E; V1 u8 X8 M$ X$ B" U
{ for(j=i+1;a[j]!=a[j+1];j++);# `+ ~: E0 _$ i z! i. y, F
printf("1");- T% |7 d9 Y6 O3 W+ P" a
if(j==n+1)% N. ~- f0 `! d0 A' O
j--;
7 I! @/ m) |* ^, G" ? for(k=i;k<j;k++)
) `5 G7 D* d& z: r4 z* F. i) ? printf("%c",a[k]);- }. m! [! Y7 t# d E- j
printf("1");7 l! b B* t5 r4 Y/ Y
i=j;7 h8 u8 l0 L; s
}
8 Y* _6 S6 k& [1 | }1 I s) C0 P. R* E$ K) E
if(n==1)
/ ^# b8 a% j0 x9 U! @ if(a[0]=='1')
" Y# K$ |9 J* y% L/ p' ?5 L printf("11");9 d" c6 {$ z& a7 {% d
else
, D6 q$ }6 w. B; y, V, \* Q printf("1%c1",a[0]);4 d$ T4 Z9 ]2 h5 r I* ]7 Z( S/ e
printf("\n");: t; p" L7 B6 C
} example2:#include<stdio.h>0 B3 D" q8 J+ G
#include<string.h>
7 q0 p( O4 Q" ]# E4 t7 |8 T void main()! K g1 [/ W% e: }
{ int i,j,k,n;
9 S+ O9 d. \0 l, z, W char a[50];& O& [) W' L& ]
gets(a);
1 p, a: D8 N4 ], O- v6 V n=strlen(a);
+ c* r: q8 L' z3 c# P. O. o& ?0 x 7 u1 J A4 `$ z% W% G
for(i=0;i<n-1; )( P" o& p; C. j+ ^$ r/ I8 ]
if(a==a[i+1])" A0 x7 y, t3 G& N0 m* ?
{ for(j=i+1;a[j]==a[j+1];j++);
' G& W& ^& l$ d6 Z" R) C printf("%d%c",j-i+1,a);; Z) k0 t/ @3 s( S3 O1 _. f
i=j+1;
4 B9 W) `2 v2 O }
$ G. f2 y, u; N* f5 K else
2 d, `% p0 B. y { if(a==1)7 o( G) f; q9 x6 Z4 k
{ printf("11");- S- ^' t% b2 l5 s) ^ @
i++;0 L9 S& J% h7 Y* [; y
}
) k1 q/ f% G u* A else
" X' ^1 f) t5 K+ v: C: K { for(j=i+1;a[j]!=a[j+1];j++);7 u {8 R5 t% N! s) D9 ]
printf("1");
( g3 |2 E. {% O5 ] if(j==n+1)1 l: Y6 Z' u3 Q6 X2 ]% v' f
j--;
. j4 \5 Q w2 g! g9 G6 q# P1 Q for(k=i;k<j;k++)
# S% z- Y5 s6 |/ S printf("%c",a[k]);
5 N8 a( A$ V7 L$ x4 I" ] printf("1");! X0 z; @% b+ r
i=j;
+ x" W( u: f; S% [% ~ }9 R: b- ~4 v7 I& ^ }! D1 b
}
8 G0 p) `' @$ |% Q8 S6 C if(n==1)" s+ |2 Y0 }* U% v) n1 L
if(a[0]=='1')
7 u! W [" O/ Q+ x f printf("11");
1 _ L3 i1 t! v) Z+ x" h else
; S5 \7 `& r B) K printf("1%c1",a[0]);
- z( P5 p0 Q& K& s' k g+ k printf("\n");
( C/ l, ]4 \) r }: `/ A" U; N0 e+ Q3 I8 _
example3:#include<stdio.h>
% {6 L7 P5 ^6 j3 x" o7 M# ~7 r #include<string.h>
8 L' B/ C9 p7 Z+ R& I& I7 Q6 C void main()( M: x6 b, y* Q
{ int i,j,k,n;
/ p" F; C5 v% Q, ^ char a[50];
+ E5 [& u6 i" Z( G. v$ e gets(a);
' o7 s: F) m3 M4 I6 D- N0 a n=strlen(a);" |% i) n( d; @
1 n4 J3 J& w! B; h: C
for(i=0;i<n-1; )8 v& p( h3 X. u c: B
if(a==a[i+1])
$ d/ v' [1 i+ G8 _# q# Z& ] { for(j=i+1;a[j]==a[j+1];j++);* v5 O# e' w/ }% D# I- g
printf("%d%c",j-i+1,a);
. `7 _9 `- D1 K' }) m' T i=j+1;
_' \; _5 X2 x) Y! D }9 Q9 T6 R0 s9 b: w' ~' e% y
else9 F$ q: e) c5 j% K; K4 U! j
{ if(a==1)
9 J+ P$ V! R% ?5 F8 s { printf("11");8 D* J, G/ T- `2 I
i++;3 `* g( V9 i+ `& r0 e
}: R9 [7 v/ f, N8 V7 O
else5 `9 [, a! q6 A& F$ s+ k
{ for(j=i+1;a[j]!=a[j+1];j++);
) @' h+ [" b2 f' B9 \: t5 E. s6 t) J printf("1");
8 f) S d7 H5 c if(j==n+1): Y2 M$ ` m7 [& u/ D" s
j--;
( W3 k% ^) L- E. y7 ~ for(k=i;k<j;k++)
, n; p0 J. | e7 q' n1 ~( F printf("%c",a[k]);# L. ~+ V& o" w4 c2 D
printf("1");( Y) F! s/ Z+ S4 g4 N
i=j;
1 j* L! t/ z& h0 ` }
. R8 D, H& b5 p9 v }: G% g( L+ R( z1 X& e
if(n==1)% E* m! {6 j; p& d3 r
if(a[0]=='1')
1 z2 A% Z' o5 H/ X) D* R( ? printf("11");
* { G* T2 Z" L else2 Y5 X9 h9 C8 A; Y* w
printf("1%c1",a[0]);. P; i$ q2 f4 {2 z w4 i/ x
printf("\n");
" z: h9 C& A' b) v }
' n" e/ S% q; Q4 H$ s1 y' v 来源:编程爱好者acm题库
zan