在线时间 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
- ~5 u! \: N9 B! ]' d ' d' |4 G" R* a; i( {
Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
0 m4 ? R g- s t 4 G: a8 z) v# R
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.
& Y9 p* _0 {% g( L* N4 K$ i
% V2 R, A h8 ]$ M7 g( K: o 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 , F% z4 R/ i8 K2 P" u) v
sequence, it is escaped with a 1, thus two 1 characters are output. 5 e" D. g4 M1 E0 N0 p
2 K% e- f2 \2 P, m2 |0 l$ M Input
' h0 ]7 Z. f; H1 a8 v9 `
5 c" D( U+ h- v2 d' t 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.
! c6 L. d- w w. \" a + k4 }! z! i- V$ U: H0 C5 [8 z
Output ' J3 I, ^% n& j/ m( x
+ w2 @) U6 D, D2 L( y6 g
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.
, t* Y6 ]* _6 L- A - Y- Q- K" n! k
输入样例
* q2 B6 o1 y' J) K% P6 I& S AAAAAABCCCC4 ^" p- g4 y4 J) e; d9 I3 O
12344
% z0 P) v8 K/ O/ m4 c
1 J6 b2 i& E, R3 M4 ]
3 c0 a' z- V6 k 输出样例 ) Z8 h) q7 Z/ |: i+ E; c' g) B
6A1B14C( C2 M* p# u# s4 |
11123124
# C' l: D, r4 o3 }+ ~3 r
$ }7 ]" B* J- g- N, A9 I # [- `' t) y3 Z u+ @" \
Source
4 |. ]& B9 m4 p9 \
1 W* e" p% f# D. X Ulm Local 2004$ h! m `. a3 R4 t' I" N7 O3 g
5 J: t% z' F+ n& U' C0 C: a: [
example1:
0 R0 v3 y: l, [% W #include<stdio.h>) w# _1 _( `' h$ Y
#include<string.h>8 e8 v \" b) B4 o" ?/ C; S
void main() I* N$ ]4 L( i8 A6 y
{ int i,j,k,n;
# h* x) ^; n0 F char a[50];
1 j+ `; j' O9 a( h gets(a);& j! h8 |5 L# S: L3 C
n=strlen(a);
0 F" x$ l. s: l$ Q+ }; I9 p 9 K( ?" K; b/ Y7 O
for(i=0;i<n-1; )% h% {& K* ]+ P
if(a==a[i+1])$ Z* O4 o5 w: B# t3 n$ h
{ for(j=i+1;a[j]==a[j+1];j++);
" C. O% C5 q& i: [6 t4 @ printf("%d%c",j-i+1,a);6 Y/ W# p% M% f" n; ^2 c7 H
i=j+1;
+ R( D; n- {2 P6 s }
5 C: b0 {) ~; L" g) ? else8 }/ L1 j; H9 X ]3 q% a, I( N. q
{ if(a==1)
6 U) v8 O! B9 q { printf("11"); }* F1 }" F3 Y/ K ~
i++;: C5 G% O- n$ q5 c
}& x! Q2 c3 W$ y) S9 L! [$ t$ Z R! @
else
5 ?/ m- _0 O5 Y( Q& v6 i' @ { for(j=i+1;a[j]!=a[j+1];j++);
5 {6 ^4 N3 {6 X$ S printf("1");9 Q& x; v) T7 A+ w
if(j==n+1)
3 {0 |+ ?# M- N j--;
" O; r& Q$ f( z for(k=i;k<j;k++)) M5 X) p2 W- ^% k& ]" ^( x; c
printf("%c",a[k]);2 M" n; L4 S$ i! _, a! Z$ |8 _
printf("1");( a5 U5 y& B) d9 z2 Q7 c5 r
i=j;: H I! k& ~1 W- B# z1 @
}( |# X7 O9 S! e7 f* L
}8 `! l! X8 l0 T+ p, f! m5 e6 f
if(n==1)2 V2 t( V0 \7 g4 {# T4 j$ _
if(a[0]=='1')
6 M E% S7 `1 L printf("11");" ~+ p+ x8 k: X+ a
else
# u, h! ?4 W8 ^# V9 n printf("1%c1",a[0]);
7 p8 Z* |. ?! `8 c printf("\n");
/ \5 p- g0 f1 f0 ?( c: E }' l% H) n3 p1 \' F( o
评论人: Colby 发布时间: 2010-3-2 12:04:06 #include<stdio.h>
U9 A) }% \: S S: l+ j/ J #include<string.h>+ j/ o4 t2 W" L% F
void main(). h$ {- h) K$ d4 P& h0 c
{ int i,j,k,n;
! e* ?4 c9 U A2 P; g& f char a[50];( y( [: ^' l/ P/ H6 }6 Z. z8 V5 e$ P
gets(a);" Y; R& n4 k4 X4 ^
n=strlen(a);
- I$ m+ `2 ]. s o. F. \6 m8 V
/ D- [/ a# T2 ~ for(i=0;i<n-1; )
( m# f4 @ Q4 R4 M if(a==a[i+1])
! m( o4 o% m3 u! x' r _ { for(j=i+1;a[j]==a[j+1];j++);
9 N2 G; I6 K$ R- K( P. P printf("%d%c",j-i+1,a);$ _% R& Q3 [3 H! D5 e# V& X1 v+ _
i=j+1;3 i: e C" Z4 H3 u" F1 O; K2 j
}
! N& d, k' ?! b/ r. U! s else
( C2 q% X; u0 i9 L { if(a==1)
6 f1 K2 W2 z6 C { printf("11");- y6 a. L7 W% j0 W( X' ~
i++;
, ?" k G0 N1 L p# b7 N }3 r5 ]9 R+ b0 J
else: Y. D6 U; S+ m* o+ Y
{ for(j=i+1;a[j]!=a[j+1];j++);
& u6 R3 v" f7 y% s printf("1");
% t; z' H' ?5 k6 G1 m% N/ i if(j==n+1)
4 |9 H* t5 N% R j--;
2 ]0 H. ~+ v8 ` for(k=i;k<j;k++)8 d( y o) }7 N3 [' q7 d
printf("%c",a[k]);( N. ^9 D1 B! j
printf("1");. j, g( P) x7 t9 O z
i=j;& m. o2 [7 ]$ {' E) P
}
6 ^& {6 E* O. O: F$ E' u4 O! I }5 H) r. c; L* `, a
if(n==1)# A( v7 |. J d$ I1 _
if(a[0]=='1')/ }7 S; t& f8 `
printf("11");3 j9 T6 r3 v9 H! ^, Q+ c: X
else" f4 u7 x0 r$ v! s3 C
printf("1%c1",a[0]);' L _6 R7 a/ p+ Q& N
printf("\n"); C& B0 B$ j) N* l+ P+ B& A6 V
} example2:#include<stdio.h>5 r# Q& G- x9 t# q- I& a
#include<string.h>
- T9 w1 i: O8 c+ m5 | void main()/ x5 l$ u9 E) ?$ \; W; A
{ int i,j,k,n;
/ W! j7 C& ]! O) y/ M char a[50];
; A& F: R/ ^# B4 P+ ~ gets(a);
; j+ i [$ B" t. D/ g& O n=strlen(a);
& v6 V t/ p7 t- R 4 ?+ Z! v$ t S7 l
for(i=0;i<n-1; )
3 Z% y* Z K2 Y' l6 V if(a==a[i+1])3 L8 W9 S6 G) X6 c" N2 {
{ for(j=i+1;a[j]==a[j+1];j++);
& M! `: c& y0 m* t7 F printf("%d%c",j-i+1,a);
. @/ e( E, w3 b( R( c3 [, m$ _0 ^( } i=j+1;5 W: M) E$ {) E( o3 C5 w
}
( Y; Z" C: z0 } else7 S: @; T+ R2 ~1 {) X: @
{ if(a==1)/ [( r* Y7 ?, s" `& h+ Y
{ printf("11");+ `! P5 \6 \' e& h, _. |$ G
i++; ^& K& B, T8 n4 X. y
}
# v; J8 T3 X/ X: X else- x: r5 i2 z8 X
{ for(j=i+1;a[j]!=a[j+1];j++);
, P) k4 b6 W+ y8 C printf("1");1 |5 ]: x' `. \3 l6 b8 w4 ?$ {) V
if(j==n+1)( C8 g" L4 v/ S- m! [. C& Y
j--;/ r5 K" F R$ u' {4 F1 @, x
for(k=i;k<j;k++)( [) J! H' t9 d* y
printf("%c",a[k]);
7 D4 O. Q$ {2 e5 D B( N5 m printf("1");
- H$ H& i; e" R( V8 W i=j;" C$ L9 S, F0 O% {0 E) d6 s# k
}4 }; X5 p' b F4 v, ~
}
# d% L! l* v3 F( E2 K2 _- C if(n==1)
$ c$ ~! g% {! S' d) U* A5 F if(a[0]=='1')
; J" w8 [7 X6 [5 m- U printf("11");
/ t& ?6 |" L1 C; V. _" M else* K* v7 A; W+ o z% q) O
printf("1%c1",a[0]);- Q7 O0 Y! k6 {! r
printf("\n");1 `$ D8 `: i" c% A; o" I/ }0 z
}: N& s1 {9 ]# k: c
example3:#include<stdio.h> c2 B" \- U: q+ }* F0 F* o
#include<string.h>
- s8 C( y% Q N, X/ o4 e void main()* C+ w% L7 `) I# Y# l. G5 L
{ int i,j,k,n;; ^4 ?8 H& l$ `' ^9 ~
char a[50];
0 i! H- m& h9 D& B7 z gets(a);
! U8 \, W+ I( r n=strlen(a);( \, o$ c$ r: ?2 {; x% w8 A1 L
" x, x( t. D5 _' I% {2 K) z
for(i=0;i<n-1; ); y. w: a" z" y) I* }% W) Z a
if(a==a[i+1])
C( h# p* M" C* B6 h$ h' F { for(j=i+1;a[j]==a[j+1];j++);) C% d# x6 T" N: K* ?) A$ A& y
printf("%d%c",j-i+1,a);
, y+ I2 B9 P9 u9 K* N0 q, v9 _ i=j+1;5 F3 `: w$ d5 ~
}% {! @5 \- V. ~! \
else0 R" R" j! e# Z& L; \
{ if(a==1)
! j( q4 P8 M5 V* @: d9 X { printf("11");3 x9 d2 B: @$ F5 G
i++;
* W3 ^3 { T- M: M4 Y& B/ v } n! ]% P" g8 a! _. |3 e
else
+ H1 t0 I. h G$ I7 D2 G$ m { for(j=i+1;a[j]!=a[j+1];j++);# t- G. C1 `$ b0 Y: N
printf("1"); @$ Q+ F7 d% ^
if(j==n+1)
, S0 N4 G* S, ?$ u j--;
0 I6 s- t+ S% ^: ?7 k for(k=i;k<j;k++)
9 Z: J5 U& d+ o2 \ printf("%c",a[k]);7 E K: @' L E( d6 Y( N
printf("1");
" }4 d0 j" z8 j7 p( f4 U' D/ Q i=j;4 N$ K. Q% O, X% O6 c
}8 G- G* ~7 c* O" a% p% v4 @
}
6 _2 y, T N. {2 J+ G4 j if(n==1). h1 N" P' W- q. O* y' U
if(a[0]=='1')! x* h7 \5 f" n, k
printf("11");/ w+ N/ O8 Y# b1 \. H* [
else5 z% ~6 d2 q9 s
printf("1%c1",a[0]);
! J: c( O3 L+ f# n p7 ~1 p printf("\n");9 b5 v _$ _: c# f3 {+ q% Y! V: }
}+ A4 x! M2 c( V# C0 g. s8 X
来源:编程爱好者acm题库
zan