在线时间 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
J+ O( `" p8 a3 Y " n' [6 L2 E* ~0 S/ Z) s
Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 4 q8 v& [. E7 G1 ]) ~( B l
3 x) U# C7 A% F
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. 1 @, Y- `3 F7 G* ]* ^! x
; U' P# A( B6 n5 M) u$ C 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 / R% Q! ^% a; {8 U) T* e
sequence, it is escaped with a 1, thus two 1 characters are output. ' ^, {! ?5 _3 {3 T% s: n; }8 u
: W/ ~+ J) }) Y. ]* m Input . E. I8 |- I. P; ^% @$ x
/ }4 R8 q0 S5 _1 M# 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.
5 ?4 s/ _5 z$ T0 g, Q# G I
' r2 M7 M" P; C Output 2 I5 ?) ?" G( ~1 a2 L5 `2 F
1 Z2 T2 h, F: t$ f; y; w
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. 4 ~; A% A$ b3 I) W6 h
4 V4 [2 j& O8 U 输入样例 4 ^* Z8 |. u5 u3 X$ m
AAAAAABCCCC
$ m; _6 P- E! c 12344
4 Y7 X* }% F4 z6 I' G5 o
! |; ?$ E2 ~+ P4 F# n
8 e! p5 [9 v2 m" X, C, M$ f8 C P+ n 输出样例
* e6 o9 e7 C1 w7 E' f. w/ K" h" O 6A1B14C
5 k. ~7 M' o0 u* y$ }9 Z 111231244 r1 ` X7 ]* w: p+ \: n
% k$ X7 C) a: } 0 J5 _; { y5 A7 S
Source
6 d/ o, U5 E7 K% z * l: k i; y3 J
Ulm Local 20041 @; X; n9 i D7 G) u6 u8 I( F
3 Z7 o2 G. D( \8 ~$ H# ? example1:, L. Z% ]) ^4 H9 Q- p/ u5 m
#include<stdio.h>
/ k/ f/ u' W' t #include<string.h>4 Q6 G# X% j( r/ l- ?- @5 H( Z
void main()0 d' B& \# }$ f
{ int i,j,k,n;
' }5 H/ @; I, w4 a, { Q! @' S char a[50];
; D) C$ h% W' [- r" T; k8 C gets(a);. I. f! V, C, b6 {) ~9 H- M' R# {! o& ~
n=strlen(a);
. u- [( T' L# | f& ? + d; C5 i. Y1 T" N5 r A& c
for(i=0;i<n-1; ) s! p3 ]1 C( P5 `' g; W# l
if(a==a[i+1])* F* Q: R3 j4 F! H Y5 z
{ for(j=i+1;a[j]==a[j+1];j++);
5 v% Q+ Z: `: b/ q printf("%d%c",j-i+1,a);
5 q' l2 b" S0 A' J: ] i=j+1;
) D( \" y. {' p+ i }
, p" V9 \4 u4 p; m else
: [" x4 f4 T" Z5 Q8 o { if(a==1)# v% L# a1 u+ X. @
{ printf("11");
$ [9 u2 ]/ j, |: Q i++;8 ?5 U. ~. v! t2 E0 ?3 p* A
}$ @* E7 z6 l3 R( K" F8 y
else' Z' R: e7 r2 k- S
{ for(j=i+1;a[j]!=a[j+1];j++);6 ^( U, m/ n/ O1 J; v4 B- A
printf("1");
) o4 W7 j% c6 H* L1 s9 @+ ? if(j==n+1)
8 t# r) L0 b0 M0 A j--;
5 N% N" s6 Y" @! [/ k7 r+ c for(k=i;k<j;k++): H5 e, _5 `8 Z+ k- u
printf("%c",a[k]);6 Y) [9 f, e6 s8 t& A$ t4 ~3 T
printf("1");$ p( e& ]0 N5 p$ p- h9 @; T7 R
i=j;2 q! ?, m( Y7 d, r _) X
}1 A3 U, S1 @( l5 T5 N$ t: N- c
}: t2 r& |9 X1 R% h7 H" B0 M
if(n==1)
* c" s$ v% V: d if(a[0]=='1')
$ T1 p6 @& s0 B& I% ~$ e% I, N printf("11");
0 T/ S, M" V( I1 ^ else* [: w' c7 S8 e, ?1 j$ U; H
printf("1%c1",a[0]);" V5 @& p) E0 i) v: a9 R, o1 ^, q
printf("\n");
+ b) ^2 |1 d6 n' \0 q' z9 ^ } A: x, I! @" G' y& ?4 ^
评论人: Colby 发布时间: 2010-3-2 12:04:06 #include<stdio.h>7 ?3 ^1 I5 ~- i: _
#include<string.h>, a, K/ D/ @* s# n# O R, ]0 c$ i
void main()
/ N+ d, V( ~8 L! V { int i,j,k,n;: Y' Q \) ~; g% {+ S8 f; U/ y
char a[50];, `/ A6 w8 y5 W ^8 w) a$ L: V
gets(a);
; L$ S4 m1 n: j7 e* S1 N6 L6 Z n=strlen(a);
! p' \- q, R+ p# E( j , r3 y1 s( B2 A+ S4 o1 W# M
for(i=0;i<n-1; )0 n1 R- d3 B* k# B: N- i8 p: I
if(a==a[i+1])4 \' q, m" l) e/ a" C. d
{ for(j=i+1;a[j]==a[j+1];j++);
" O% U8 a @: }& \! { printf("%d%c",j-i+1,a);: O( P+ e" a# ~2 J* O
i=j+1;
2 F% O# e& a# Y0 \3 n: _ }& \2 L( F( }- {2 c% C) X* g; A) J! u
else: E- v3 D' m, m+ L
{ if(a==1)$ ^) {; G1 }, Q& S9 u' v/ R1 ~% e
{ printf("11");5 l. w% A0 u; A/ T5 g1 w) x; l
i++;
0 ?% ]/ z8 }2 _5 t }( b3 n2 _3 k4 `- m
else q9 ^$ G4 s; j4 A8 d
{ for(j=i+1;a[j]!=a[j+1];j++);
5 R) ^% @9 o" M$ v9 i: y" s printf("1");+ X9 W8 I( `( D: u% D; V
if(j==n+1)' @4 M5 P% _9 R" v: \ ^' k2 M1 W
j--;) p! D* W$ a' w& t' Z' ^6 }
for(k=i;k<j;k++)
& g6 D5 [ R T9 }) ~5 d printf("%c",a[k]);
! d4 \+ B2 m, I/ f printf("1");% G" z4 ~( A9 i. d
i=j;4 a7 E$ P6 N$ r8 Z2 O0 R8 M" v) W
}7 W' J1 l0 W6 {6 L3 e
}
% x# a: F3 f' i0 U4 C4 r if(n==1)2 z/ V! T7 N. F9 z( g" d2 d
if(a[0]=='1')
3 a V* k3 S3 Q& Q printf("11");
& _) G Y: h1 A- r+ T# x S else
; q% h X9 t2 ^8 w& p) R! h7 C/ t printf("1%c1",a[0]);
( R' t' h2 W* [$ R0 ?9 z6 P T3 N; F printf("\n");% e* \# ~$ a9 x. y
} example2:#include<stdio.h>
( Z& B4 R) x3 m #include<string.h>2 x6 x p4 m* @5 x' ]& H
void main()
' {) b+ ]6 X* k1 C' U6 G { int i,j,k,n;+ q% `7 C6 f% W- @/ r
char a[50];2 l* O5 [- p, ?
gets(a);- {) G% _ G- E" ?/ m; `0 d
n=strlen(a);
" j4 H" b8 Y5 U' \ _ p) ~ ; n, m9 E9 L) ?* t/ Z5 m3 }' @
for(i=0;i<n-1; )
8 m" F6 U# W% u2 l0 ]( A. o if(a==a[i+1])
t: T, E6 W/ l; v* c { for(j=i+1;a[j]==a[j+1];j++);
. S4 m) J5 s' s$ W% ?, K. Y; C printf("%d%c",j-i+1,a);. n: @! C& i2 O( X5 O2 {) e
i=j+1;
! V/ l. I7 Z2 v' s3 @ }
1 j% q% ]6 R \ else
6 u4 }/ p0 y7 e8 ]8 x" o { if(a==1)3 u* P! O% E! M4 `. w2 C* c+ v
{ printf("11"); b7 J& i9 w* L$ Z6 C- D
i++;
/ ^$ K! R* i/ l' r' I* s# P2 O }) |( w& U9 Y9 R" q$ ?/ _3 O
else
7 p9 k8 k. F M/ a" \ { for(j=i+1;a[j]!=a[j+1];j++);
( T! J h$ n9 e1 d0 F printf("1");2 m6 }2 f" ], t% `. T2 D! t4 \
if(j==n+1)1 H9 p3 f7 s. i6 _
j--;
2 O* z5 ?. z; M( h2 b for(k=i;k<j;k++)
% l+ R* i6 a' E+ x5 z0 R printf("%c",a[k]);
3 H5 w3 e$ Z7 O1 g printf("1");
! u7 }" L; F: c8 _ S3 G( Q i=j;; N( M' ^7 G5 E9 R, @/ w$ D/ C
}. ^/ m, b) @) m: u* L; _
}6 ]# G4 l; A" Z7 L( C; q
if(n==1)
& o0 n7 v- ?( g; e5 u if(a[0]=='1')
$ f# J' B- f- [" j4 A2 N* H" u printf("11");
0 J9 ?3 S: \1 u# v else
% j9 W) A! D2 M printf("1%c1",a[0]);
- ?2 t+ r" _4 ^8 G9 P" N$ j printf("\n");
$ R: U6 {# r1 P" U& r }
% G8 b4 g0 T8 f0 t9 U( `. c example3:#include<stdio.h>
# j& g( l; Z" s( B1 u# W/ D #include<string.h>
# k: X- g$ Y( A void main()
% S5 ]1 W. d4 t { int i,j,k,n;4 k0 A% H, d0 ^- q
char a[50];; i% }' _% e4 y, L) C
gets(a);
& x( k* m' i* x( Z n=strlen(a);
* E! P/ C \4 m$ t7 u4 l 0 h2 L) g8 e# M% T7 E; }2 f* {
for(i=0;i<n-1; )% j$ v, U$ m6 C( N) C2 N
if(a==a[i+1]): x3 Z$ m5 X+ W5 k
{ for(j=i+1;a[j]==a[j+1];j++);; I1 A/ ^9 |4 d( w7 J3 ~
printf("%d%c",j-i+1,a);- v! ? C* ]- [1 {: I' o1 n# @
i=j+1;6 x2 c' c' X, ^8 l
}
P* t( H2 {' a* J: ] else/ Z% D/ U/ N* ?% N
{ if(a==1)
# g) ^0 T7 Y) O, x. C { printf("11");
5 T2 I+ y( r5 q, }; S1 r. G i++;. y3 d4 c" A; p% n, u* I$ d$ }
}
1 T$ k6 T' G/ a, z1 ~ @ else
$ M& O! q/ M. [% z( l- l3 a { for(j=i+1;a[j]!=a[j+1];j++);
5 D4 ?6 M+ E$ m S! `( [ printf("1");
" }/ T% S2 P+ ~3 a- ]/ E" a* U if(j==n+1)
) j+ p6 A' M- U) `5 w j--;
' j& J* J. p+ K$ C- I for(k=i;k<j;k++)
1 h: ]8 {( D& x% X: U printf("%c",a[k]);, ^7 O8 Z* Y( u) _! V% s
printf("1");
; x L/ |% \$ G7 x6 M) H i=j;3 J& X1 I! u0 U# d( ]" u/ ]
}
! m' B# J# r5 }$ N6 f }' y' _, k G3 S, l
if(n==1)
% n$ J1 n$ j6 @0 @* i% E if(a[0]=='1')
3 S5 K! F* Q8 h" h printf("11");# i* f: f9 E3 p Z! a
else! @% z) A6 [6 I T& Z4 h
printf("1%c1",a[0]);
+ G/ O# k2 s; M7 f! ]. B printf("\n");( c$ C3 Q' R7 B( v8 q% ]
}& k) p* O6 z* m
来源:编程爱好者acm题库
zan