QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6112|回复: 4
打印 上一主题 下一主题

acm编程竞赛题目2(Run Length Encoding)

[复制链接]
字体大小: 正常 放大

1341

主题

738

听众

2万

积分

数学中国总编辑

  • TA的每日心情

    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    超级版主

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组2011年第一期数学建模

    群组第一期sas基础实训课堂

    群组第二届数模基础实训

    群组2012第二期MCM/ICM优秀

    群组MCM优秀论文解析专题

    跳转到指定楼层
    1#
    发表于 2010-5-6 18:38 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    Run Length EncodingDescription
    % l) v0 w& p. {/ N3 w6 N
    7 ~* S( d+ x! G5 a: x" O: ^" h" v% P, SYour task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 6 ?& g* ~, t# Y

    7 _- x$ w. K; f5 \, Z7 dAny 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.
    : m4 Z" o$ w6 k: ~4 ]: z
    2 V. r3 Y( m/ U! d. l7 iAny 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
    - q& ~$ f% w5 ?! m8 Ksequence, it is escaped with a 1, thus two 1 characters are output.
    * C- j* O" M/ ^+ C5 }' r% T& {& Z3 e  D% f
    Input 1 g7 O: o# {& Q$ v, A+ e0 v, C. x

    6 Z4 u7 y& r9 _, ~  O( {5 OThe 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.
    # }4 `! x  T* `$ K/ j6 C' V# x/ e' U4 m. x7 ~' i. w
    Output / K) w- S* a7 `

    , [' R5 t* G0 Q. C" k! w9 R) N1 gEach 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.
    & {  O3 n7 @: w2 {* j! A! P5 g1 S1 q4 q1 s; d! h; q, k
    输入样例


    9 `2 G9 a; K, B; p6 P$ GAAAAAABCCCC
    0 q, F" x2 f' O* J1 Y12344
    ) E' u0 e) N; ?* z1 z- V+ ~8 U

    : E9 I* n+ _# Z& C

    # T9 b8 ~$ M* L6 v输出样例


    5 z/ K/ [7 ~8 x6 h3 Z# m6A1B14C
    % P& \7 J: E6 R1 o0 X- n% l11123124
    2 l/ J7 T2 m$ [' N' `. P

    % g0 z$ `$ o& d6 q
    # U$ L- l# s. @0 T+ x6 k% z! D' t
    Source$ o! ~- W' K: ^

    ! @7 Q3 }: O: J, A5 A$ [6 ]4 dUlm Local 2004( d  p' g( y+ L9 R- {
    . i- b1 W1 z' _8 h( J
    example1:6 X( v8 Z4 y6 V7 _2 n. w( }
    #include<stdio.h>
    . \" @7 j" ~4 l  n% D#include<string.h>9 ?7 E5 b1 k- b' K' g% G5 x  f% l7 A
    void main()% o! y. L7 V! n' t: A2 b1 h* b9 F
    {  int i,j,k,n;8 B& Z3 i  x0 p: z
       char a[50];% r5 }0 w1 q# u2 w9 [7 q, Q$ D
       gets(a);" @& B, O0 P- P, g' }
       n=strlen(a);
    / k0 K6 e9 E( \
    : N* }- s2 `0 P7 ]% B   for(i=0;i<n-1; )( o, ~, W1 V4 W+ F8 ?" x0 d" D
          if(a==a[i+1])% v. v% N; l. J* m. o9 x; b7 R
          {  for(j=i+1;a[j]==a[j+1];j++);
    1 S! m: Q' y  w! z$ o, v          printf("%d%c",j-i+1,a);5 a: m. ~1 Y. G  t$ S  J" N8 q6 b- R7 d
              i=j+1;- A& o. \% T/ Y& x+ Z. O, _. m8 E, B
          }' F% ~' v6 h  t1 Z4 r0 X1 T
          else
    2 Q. A3 k. c2 [& f/ m) B" j      {  if(a==1)
    + ?1 \9 W: `$ g; H            { printf("11");& M; o( m4 u2 i. i9 C. c
                     i++;  p# x9 h! Z5 `+ h: |" t
                }  e2 \# I$ S, `4 a5 k
              else/ c& U8 _1 W4 U! K# ~* G
              {  for(j=i+1;a[j]!=a[j+1];j++);0 P5 w6 I/ S# G1 i; |+ E1 B* ?9 @
                  printf("1");. D; h  w0 ?' k9 {+ Q
                  if(j==n+1)
    7 q- Q+ X2 E  [5 u5 S4 i9 g. s, _5 m4 w                  j--;9 z* j6 ^% G3 u: b6 i* ^7 C
                  for(k=i;k<j;k++)
    # r- ~/ i1 J( E                  printf("%c",a[k]);3 }" N: g. D# P9 n0 j
                  printf("1");
    9 g; h- q0 J0 c; T- s              i=j;8 `1 i5 k! V' T, \% P! o
              }
    ; u+ S' `9 I9 K1 S+ }- V3 i3 v      }
    # y' \5 i4 p, [+ o: _      if(n==1)
    9 V$ ]# P. G$ [- I          if(a[0]=='1')
    7 S7 R9 k7 z; b7 W$ }/ b- d& T! W              printf("11");
    / Q  [% e7 _+ G) v          else* \( q) k! a. U  a
                  printf("1%c1",a[0]);
    + Y( D& K9 L6 ^# g   printf("\n");
    ! l. m  X# D3 \4 E- }" c }' ?' U& h& z0 @6 u5 |; Z( z
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    3 J+ r3 K, j; a* G- m#include<string.h>7 e# m  o: t- Z3 H( {4 h
    void main()
    # m8 p5 f: Y% u* B& _+ [! |{  int i,j,k,n;
    ; ~. [* r  D, r0 m   char a[50];- @& d. e& J& m5 Q' n* ^1 |
       gets(a);" d* h# a. ^  X+ I' b, E
       n=strlen(a);
    $ a! b4 w  Q5 ]0 j5 Q8 J: V' c
       for(i=0;i<n-1; )
    5 H( L1 [8 U8 V# S; ^  Z8 Z      if(a==a[i+1]): d* y% B" j2 o
          {  for(j=i+1;a[j]==a[j+1];j++);
    - W/ O% [$ n! z$ G- o% Y          printf("%d%c",j-i+1,a);0 ?$ ~6 T" ]8 Y/ L0 l* k
              i=j+1;
    " ^4 @. D: u( X3 q* i: |4 s      }
    + u& @  U6 j$ ?. W8 {  _      else2 h: G" S/ J  r: z% N
          {  if(a==1)6 w) ~& W! m2 X, p) ?1 `) H
                { printf("11");
    6 U# j/ m8 z0 y. i  c. p                 i++;9 ^$ ~6 U2 q' t  N
                }: l  [) Z3 ^. u: r  w2 r: u* e9 W, l
              else6 a5 }/ J; _7 J% t1 c0 Z- v1 W
              {  for(j=i+1;a[j]!=a[j+1];j++);
    # f" b4 o5 _( b4 b. y: s: e              printf("1");4 P3 I" O/ I5 {: O) s; Y  b
                  if(j==n+1)+ o3 j0 R, C1 i. ^( x
                      j--;
    . S1 ~6 N8 \- c) c. \$ ~              for(k=i;k<j;k++)
    3 R% u2 ~8 ^  H& t8 I6 V                  printf("%c",a[k]);
    + o3 j  }6 C, [& c, [              printf("1");
    : k( L# J5 U- s2 J6 N. T              i=j;3 L5 Q' _' `5 S0 v6 P- A3 I$ p
              }, R2 ~/ e: C4 p( C6 ~$ |! k  ]
          }0 H  a# R6 W3 d$ ?  D' s( Q" V
          if(n==1)# z, l! w# c) G/ @6 f8 q
              if(a[0]=='1'). F0 Y, A3 M+ }1 w2 P
                  printf("11");
    0 X/ I% N4 q3 x: Z! J          else8 S. L3 L! |; G% j. f+ c
                  printf("1%c1",a[0]);
    " I) P$ b: b. l) n, R   printf("\n");- D* K0 }& i2 R# |0 b: K
    }    example2:#include<stdio.h>
    8 `# \: n, ?/ g+ i#include<string.h>3 C$ }9 a  x5 u
    void main()
      U9 Y" K) c4 o  q( |: V. N. I1 }{  int i,j,k,n;
    * P' _/ f' E9 q$ p2 U0 T7 M* I4 s   char a[50];, R$ m% _, M7 j- q0 R! |
       gets(a);
    9 z: Z; {+ E* t, `! q1 O- ]   n=strlen(a);% ^6 s& N+ R, y" \% l4 I

    ( u+ l5 Z/ {# o& R* P& Y5 X6 }   for(i=0;i<n-1; )
    % v) \  u3 t! o7 \( E" Y" J      if(a==a[i+1])
    / r- S1 P+ B3 A# @5 w, b. y8 @      {  for(j=i+1;a[j]==a[j+1];j++);
    6 G4 _1 m, o) z          printf("%d%c",j-i+1,a);' `  r) e+ N$ |6 D$ X
              i=j+1;
    8 I6 E6 D/ A! ~1 b- Q      }- w, |+ v: U' L
          else
    + J- d6 q& z  S- D- T: x- u9 k# _      {  if(a==1)) f& c2 l) ~$ h8 Z  J: L
                { printf("11");# m* K: Y- S! M7 x# m1 M7 R
                     i++;- Z! k9 A8 O" P; S4 L, L( C5 r
                }8 t  j- E: \* m( ]
              else1 C3 \7 x" }( J  L8 V3 `/ i- i
              {  for(j=i+1;a[j]!=a[j+1];j++);/ D  Z& n& u$ |
                  printf("1");
    ) k9 Q0 |$ Q, d$ Y, I0 o; D/ T* Q              if(j==n+1). Y$ ^# f  e' L( J7 B( G
                      j--;
    ; ]! e& L/ l' [5 X: G0 @              for(k=i;k<j;k++)
    3 A3 R8 l% z- l$ I) f3 \                  printf("%c",a[k]);
    . q$ j% C- Y8 v4 L8 F              printf("1");
    ' s' s$ o' E" f. [2 C: N              i=j;: U! U0 ?: N; \( a. R
              }
    2 N; h( p; P2 ]3 z, d$ E! w0 {, r      }
    8 r$ f- [8 T! H      if(n==1)
    , M2 H+ f, {% d9 Q          if(a[0]=='1')# c3 g# I; ~, Q4 _
                  printf("11");6 s5 w  B  t" a
              else1 I+ }- H6 X. |) [# f5 P9 c
                  printf("1%c1",a[0]);
    3 v. i! C# r1 N) Y& a   printf("\n");
    + i8 Y8 T$ m: k% @' b( Y& b }8 ]: B+ [: C' z3 o5 }
       example3:#include<stdio.h>
    % B" [! b" W) j9 ?0 [5 d( _! A6 F#include<string.h>
    ) O9 D/ Z5 y- ?) F% Evoid main()
    " h6 J' T% r$ @% H& Y" J7 U{  int i,j,k,n;
    & e( l7 U0 T- x; K0 S5 d/ `! [! y' b: ?   char a[50];
    0 v" x" R- F. N' X   gets(a);
    + }8 C1 v2 l: c1 g6 @/ D+ P   n=strlen(a);, x4 c0 V) B: ?; z4 E$ g

    : p! s+ G# F7 H6 ~   for(i=0;i<n-1; )# [- \2 {; r# I9 j# D  A
          if(a==a[i+1])- V9 q% W( D# Z
          {  for(j=i+1;a[j]==a[j+1];j++);& C) g; {! b4 `
              printf("%d%c",j-i+1,a);; B' |# e5 r' o5 i% i) G- U9 D
              i=j+1;
    ( u8 |. d, n" W; k( P# t      }
    3 k4 |# f6 G6 q5 }( e9 f/ E      else4 Y% `# @# V5 I" q, O: K. P8 K( u
          {  if(a==1)
    1 ?& }6 ~3 N/ e8 N            { printf("11");; A$ Z8 F  z1 G# R2 y
                     i++;4 t7 e3 E+ f/ b2 N
                }
    6 o/ o+ r" g; G! o2 ~9 k, N          else
    1 d3 M! L0 J" S  j8 i          {  for(j=i+1;a[j]!=a[j+1];j++);# p8 k: W2 S( s9 i0 ~6 N; B
                  printf("1");6 _9 [6 h0 O& q/ i* i
                  if(j==n+1)
    ( l' S7 ^( H4 h; T) `9 }' B7 d0 C                  j--;
    8 b6 T( [) [; S              for(k=i;k<j;k++)) o0 V, O/ v; m. {. s+ p* `8 c& V+ ?
                      printf("%c",a[k]);
    - [' v: V, S5 ?              printf("1");" J* e8 N8 P& b+ ?, H) c5 b- ~
                  i=j;! k2 y. s) J2 Q1 B# _3 W) s) j
              }
    ; J) J, [% J* U( @      }) a: ~; G: e3 a. y, Q# _2 q
          if(n==1)9 @& q& g, u/ W& Q- |. e) Z0 N
              if(a[0]=='1')/ V1 y. }, p3 Q/ E6 V
                  printf("11");
    0 G2 e" m; Q5 {0 T! Y* X          else% M( q9 _, W6 b0 ?$ N8 w
                  printf("1%c1",a[0]);7 K( }) o, k* R& ?) ?: v+ F+ Z/ j; ?
       printf("\n");$ |1 s9 h5 a7 h
    }
    6 D, C+ \% L* O8 _      来源:编程爱好者acm题库
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    qnbs1 实名认证       

    0

    主题

    4

    听众

    34

    积分

    升级  30.53%

    该用户从未签到

    自我介绍
    200 字节以内

    不支持自定义 Discuz! 代码
    回复

    使用道具 举报

    Jackge        

    0

    主题

    4

    听众

    23

    积分

    升级  18.95%

  • TA的每日心情
    开心
    2013-4-28 11:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    自我介绍
    一个不想平庸的男人

    群组C 语言讨论组

    回复

    使用道具 举报

    dahai1990        

    0

    主题

    3

    听众

    47

    积分

    升级  44.21%

  • TA的每日心情
    郁闷
    2013-1-15 09:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    群组2012第三期美赛培训

    回复

    使用道具 举报

    qazwer168        

    0

    主题

    4

    听众

    53

    积分

    升级  50.53%

    该用户从未签到

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-7-20 01:32 , Processed in 0.627151 second(s), 73 queries .

    回顶部