在线时间 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 9 K6 t8 p( o1 t7 K
3 D# U6 r) y; Y! i
Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 5 A; v$ L. [3 c7 ]& C5 d4 K4 v
. F' @, [' A9 b: p( {( j5 f- b' q 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. 5 [' g; i: J, `1 N% d: c
, w! L) y. m& N 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
; C5 q2 ?- k: G- ~! O sequence, it is escaped with a 1, thus two 1 characters are output. ! M; Z/ ~5 q) R3 {
5 y. H# Z E9 d Input ( W' @* {8 R- G( ^
. X$ c9 K0 Y/ u2 _ G
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. + ^1 K6 t' B. \( @( S2 W
! l2 a# Y9 j" G7 R: r2 ^ Output . K' b6 M" a% J- h
5 t0 h5 A# Q" y 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. ( Q3 Q+ n& f' l, {' Z* c9 ]4 f) O
0 G, u2 N, a- {( K; ~$ V
输入样例
+ ~3 O5 Z/ x+ S! }" m8 T9 R AAAAAABCCCC
# M6 n) [& i* x8 F: }2 s, {; Z 12344! c8 ?5 [2 E7 T# e5 M4 `; w
, ]1 N C2 n. {& b/ |
" i9 ^* C, |& g- V2 Y4 C5 \ 输出样例
1 T y x8 `. B. w7 o4 z8 C 6A1B14C
- t d& U( g. e6 | 11123124
2 J- ^3 ?8 E3 F2 b2 t0 L
4 l; e5 N4 d2 c0 @
# R0 N: ~/ I# ]8 Y% c Source2 N8 \, D% G1 i
/ G, ^7 o5 M* H1 u) d
Ulm Local 2004
4 v- e: f; K7 w, k . X0 ?3 n$ f) Z* V+ y; Y4 S, R6 Z7 S
example1:/ }& [1 c1 Z" w+ |! Z
#include<stdio.h>9 {7 s$ ^. {* l" g+ H/ a6 i
#include<string.h>
/ ]5 ~( v# |0 Y4 o8 t void main()- s* F5 {! I6 Z6 e5 j. w+ ` b" q
{ int i,j,k,n;1 m. U+ A# V+ @+ W* I E
char a[50];; ^4 \9 J5 P; _4 V/ m' R
gets(a);
4 I) h9 q* n& _& l n=strlen(a);* g, { T0 l5 v2 R. ]; ]2 [
! U+ M6 H o9 ^5 |( D; Z for(i=0;i<n-1; )
3 F* @& H2 ]6 b6 \" z" _ if(a==a[i+1])2 U+ V# u8 m: ^
{ for(j=i+1;a[j]==a[j+1];j++);
* O, u; D# c8 z# a6 n printf("%d%c",j-i+1,a);- N* ]* @/ S1 _) Y
i=j+1;1 Y. Y% ~8 n; m
}
' q% ~; h% h. H1 p else% R! q9 y0 `- c0 x0 r
{ if(a==1)
3 k4 g$ k+ [7 ]3 G { printf("11");
) q8 Q5 \7 |; J% G I% ?; } i++;
5 `; I1 l5 Y/ D* ?" W# b }
4 b9 y9 P2 S: Z2 B: d else
$ {- l" i! j& s$ o& t { for(j=i+1;a[j]!=a[j+1];j++);$ ?- f/ D% ]/ z: l! B
printf("1");
1 W4 ?' z+ q, W3 n/ v. n if(j==n+1)3 W- ^# K7 z) h/ l7 K
j--;
6 j( F9 O# @% H/ f) b* { for(k=i;k<j;k++)
' W) v3 |& f Z. @ printf("%c",a[k]);
% j# z3 K/ b9 E6 _3 p8 A4 d printf("1");: W" u% q# B5 u
i=j;
/ f8 z0 _* z+ G( d( ^8 A: |" r5 N2 S7 u }9 T5 A2 i' p1 ~) Z3 b% G1 R
}
+ k, n# ^/ s! K; w) u( @1 L if(n==1)
" f- j/ y5 ?% g6 l! L if(a[0]=='1')
+ g3 @ W5 H4 g8 i- t* @2 R. Z printf("11");5 f- Z" r" y$ C- U
else8 X' Z" g( c$ s/ | I
printf("1%c1",a[0]);
1 [0 d7 ] X: Y3 L# z3 m& T printf("\n");# P0 l e0 C9 h; W* `0 @9 j
}
) O" \* a. V' i3 W6 a7 m# n 评论人: Colby 发布时间: 2010-3-2 12:04:06 #include<stdio.h>% n4 ?' q8 l% L8 h9 \
#include<string.h>
* E# ~- N& ], K) s [ void main()$ P0 H0 N1 @+ B* y; L/ F
{ int i,j,k,n;, F: ^* C+ S! j4 e0 `0 X
char a[50]; m/ h' h3 h( b
gets(a);! V# V1 V7 Y: ~* V4 E+ ^# g
n=strlen(a);
* y/ _4 A: }" E1 F' B: \- j9 |) P/ V . c' x( s' ?/ @3 @, A# `+ ~" Z
for(i=0;i<n-1; )" x4 O+ m; U% o% W* H! R
if(a==a[i+1])+ z4 O) m( f2 `
{ for(j=i+1;a[j]==a[j+1];j++);
" O8 v6 Z; B) Q' s2 t6 @: C# B& N; B printf("%d%c",j-i+1,a);
* i) t7 |/ p2 S8 ] i=j+1;
! k0 R7 d$ F7 o6 w- z4 ]$ Z }
- }' H7 T& G) \3 V+ U/ ~1 q. O9 l else% _5 ]' S N. [5 M/ C: H t
{ if(a==1), R( @7 \7 P$ S. A$ y/ n, {- Q
{ printf("11");
! J3 H! Q& W& G- X6 o* H2 p i++;6 H% G: W/ s! C
}
/ T$ l- F3 X* t. b else0 q& r* a2 L H. H0 h4 z% Z# {
{ for(j=i+1;a[j]!=a[j+1];j++);9 I( \7 b. [+ P3 w
printf("1");) K1 _9 i8 ?9 o/ Y+ a- ^
if(j==n+1)
2 V! e7 t, A. [0 ^7 |8 a j--;/ n! T1 i- A. I1 ^# F$ G
for(k=i;k<j;k++)9 ~: Y2 h5 r# W# B
printf("%c",a[k]);
, Y9 h5 r: }0 Z1 c$ v, a printf("1");
# S! t v2 C- U. G6 j$ y4 s- E4 f. P i=j;9 a0 v1 T s& M' h& B6 m
}
4 Z' F4 N% V* _- P( a }3 t" Y( ~3 |% X
if(n==1)$ m$ U& i0 q1 o+ A5 g' G
if(a[0]=='1')
7 f0 O' w1 G5 z0 P4 z printf("11");5 w5 x* f' J9 z7 c7 R2 U$ R+ b
else x2 g( x0 M. v! w. j/ V: \# H' a% y
printf("1%c1",a[0]);
% q* u( }4 _) [, ^1 j! c2 [ printf("\n");
! U5 V+ i n7 ~3 l } example2:#include<stdio.h>
& M- u1 q! g8 H2 n1 ] #include<string.h>6 ^2 ?3 O% T d( F) P5 T
void main()
! w/ z* c; i$ f i- b% h$ w { int i,j,k,n;
# y$ t9 q# u9 @0 c1 H G6 N0 S char a[50];
5 y8 F$ r% y/ W5 i2 t/ }3 r gets(a);
* C6 h, ?8 Q& s) Y( g4 }+ W# C n=strlen(a);7 Y% b2 p3 u& R$ T
7 R) J0 @2 O5 c1 O
for(i=0;i<n-1; )
. K; k- n: L0 B( p/ _$ ], \, F if(a==a[i+1])
9 B% z) M0 v4 Y# {$ ? { for(j=i+1;a[j]==a[j+1];j++);8 I+ d& {/ p5 S7 a# P7 \
printf("%d%c",j-i+1,a);
! C" h' H+ ?9 U j; u i=j+1;* Z8 r) t, N. j' A5 o- ^6 i& V
}
& z$ X, H6 A0 f) `, l else) j* L8 |3 V& p# p0 A: n3 J
{ if(a==1)% o/ A2 a- j3 [* f0 X
{ printf("11");
! u5 L* S' }3 m; y- a' P i++;$ _, A1 g U0 ]( L9 L; A
}
* _$ O( Y. m" [4 i else' \0 a. n2 E1 E' {# w1 X
{ for(j=i+1;a[j]!=a[j+1];j++);
`: U- k U# v) } printf("1");- q/ u* l" C3 z/ o8 ]: u
if(j==n+1)
+ A9 D2 o& k5 ]8 f7 q8 s( F8 @( F( U% t j--;0 P5 D$ ^1 w7 ?4 P
for(k=i;k<j;k++)
# e0 l1 G [4 B1 [. g printf("%c",a[k]);4 Q2 @1 W6 B, y8 Z7 c: f' q
printf("1");! c9 n* p7 u. y8 g
i=j;3 E9 ^0 h/ H! R% T9 b- q
}
! G1 N8 I" J1 _% C1 W3 C% \ }
$ A4 }$ r* G0 D0 r if(n==1)
: e, E* J, t1 N6 v4 X: u2 \ if(a[0]=='1')
$ O0 ~; D% l3 e; K- S printf("11");
K. Q b! `2 N4 i" @6 r5 T else
1 X6 r* L" a+ c# f* ? printf("1%c1",a[0]);" G Z) }1 m6 I9 o9 o+ o
printf("\n");
; y. c/ }1 e: A! g }
. Y7 r) K( s9 o6 c& k3 G example3:#include<stdio.h>5 _ R/ {; M' H1 s' X& v7 b1 C9 a9 T
#include<string.h>
3 @) _ y8 b: a/ b5 o void main() ?7 u' w' s& K8 y% P* `# N
{ int i,j,k,n;7 R& V3 c& e W# Z: I9 i' a, @% F
char a[50];1 R; X. V9 w8 N& v+ [& y- I
gets(a);0 e! O7 r# G) l4 ^
n=strlen(a);
% @& ]0 A7 F. h% a' Z
$ N) P! |1 k9 j8 g for(i=0;i<n-1; )
/ n E* M4 P3 b" z) s if(a==a[i+1])
8 O( c+ D) B9 x& D( } { for(j=i+1;a[j]==a[j+1];j++);8 ~2 g* r) z) G* r
printf("%d%c",j-i+1,a);
- L& \9 ^+ `- _6 C i=j+1;! V2 @# `# N" O! I" R; N
}# e4 q2 [* N4 s4 f7 n' `6 ^! m. @
else
+ b9 i& f% l4 W# @# L# X i { if(a==1)
% s I# _" w8 t$ n/ A' c$ i { printf("11");
; s% ] ^' O( ]( M4 K6 S i++;
+ W) B9 I* l% N4 w: u }
/ f, B$ l$ p3 b s1 n else
( E: k" D, e& x { for(j=i+1;a[j]!=a[j+1];j++);
% ?! N7 o# [6 Q9 [- C+ M: u printf("1");( d8 w/ r. X" Q/ H0 r4 j
if(j==n+1)) p" w2 w( s! h9 L+ V
j--;
) E1 Z& u, { b1 S: d for(k=i;k<j;k++)
" I3 m$ a( H; \4 R3 i printf("%c",a[k]);0 x0 B( W" ]6 P! ?2 {( s* t
printf("1");
. i# H2 j+ K0 c i=j;; T* d* s) m6 y8 c/ p O
}2 M& E' A' h: o, r
}
! Y# ]/ G3 w; ^& W# N8 @5 |9 t6 U- h if(n==1)
O [% l Q) `0 g if(a[0]=='1')7 {& A% k) `' c9 J1 K
printf("11");
& Y4 A9 ?0 T, s1 ]$ T6 F2 _ else1 K* ?5 A, d' b+ K4 G
printf("1%c1",a[0]);
& ^& @7 J5 o4 C& _ printf("\n");' x% u2 z3 ~2 T5 W4 q
}+ V% W+ } [7 W* }8 c
来源:编程爱好者acm题库
zan