QQ登录

只需要一步,快速开始

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

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
    : U; s9 x( M; m8 e$ V4 C
    8 @) F. C* z+ x2 h, X0 R* RYour task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    ( b1 t% ]: s+ D1 m3 o
    # D4 [4 q( D2 q+ v  l: LAny 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.
    & O0 v0 e4 g* M
    , B/ S: }7 a. `6 A/ DAny 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
    * Z( V# q" `; q0 X* V( A' zsequence, it is escaped with a 1, thus two 1 characters are output. 3 {5 M% B  }) H
    . @1 Z, `: Q( P  _9 P. `
    Input
    , f/ {2 V; z( V; r. ]" C/ f" u4 V( d9 U) F& ^! P1 }% o
    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.
    " c: n1 \( ~& s  T3 B- v: u5 ]7 ^; y4 ]
    Output
    & R! E, b5 l& y- ]6 A
    1 B! u" o7 \4 t" ~' w2 v- T1 iEach 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. - ^5 c: ~2 v% W/ X' q

    5 R/ g. O" `1 Q+ E4 ~. [5 s& N输入样例


    ) w4 H- F8 b6 t" u+ KAAAAAABCCCC0 ]6 ?- C7 G% u. F
    12344
    ! p8 {9 a+ ]/ ~

    ) L2 D; Y. ^) r5 M4 o

    * x# y$ J6 V( p1 O6 A输出样例

    1 \( ~. y7 I4 ?& ^) R
    6A1B14C! H2 {: ^- Q( U! m. j+ N7 ]6 A
    11123124. x4 r$ b& Z' m


    - V( e) C) G. m" u
    * t( n* S; T2 J( k/ cSource0 r3 y3 J  X) [) b/ H
    1 w- m& G* F( K. y/ @
    Ulm Local 2004
    9 T% \- C9 c" s6 S2 _9 W% k7 U5 G
    example1:
    . S& H# N) [, S) q7 c% D#include<stdio.h>
    # C, E" X9 r7 L4 a3 E% f" W#include<string.h>* S4 h+ x! {6 D
    void main()8 D" Q! }  ?. }; ]  J  j
    {  int i,j,k,n;
    + D' b( |  c/ }& j0 |! [   char a[50];* t3 f; T9 N6 H3 m% }8 R& V7 x
       gets(a);
    ; c- C3 ]+ d: K. D   n=strlen(a);
    " |) Z( t3 i7 J6 p. ?( u
    - Z5 e3 Q  v6 ^" U! y   for(i=0;i<n-1; )
    3 {! c( k2 P& b: `" s      if(a==a[i+1])/ y: e+ o% `- n+ w
          {  for(j=i+1;a[j]==a[j+1];j++);! d1 b; D, v; y. Q
              printf("%d%c",j-i+1,a);
    # g3 `- j# Q+ z8 O. M% X+ \; l" i. c          i=j+1;
      m& K% }; Z  r8 I, N9 r3 v7 T      }+ ~& ]+ G% u. j' {) R9 g" v8 q7 d
          else6 t0 V0 Q: K$ o) s
          {  if(a==1)
    8 W; t) \5 [% O- i) x5 V. P6 d            { printf("11");
    9 {" [$ m. W( i! G, s. O' \$ j                 i++;
    / `) G, }) L6 {6 ]6 U( C1 _            }
    . ?# K6 a6 q. T8 d$ G! ^. n          else; O: a1 ^$ o; E% H/ u; ]* {8 k8 x
              {  for(j=i+1;a[j]!=a[j+1];j++);/ S# i# i: m6 u4 L9 P# y* G
                  printf("1");
    : ^% O. q  R; |1 q! C& h' l5 Z              if(j==n+1)
    " [# k' S& z2 m                  j--;- K  k8 i# Y* O. U7 K2 s
                  for(k=i;k<j;k++)3 R" K* o9 i2 z+ h
                      printf("%c",a[k]);# o3 G/ Q8 k% p  L& @
                  printf("1");
    " z* j& Z" U9 G              i=j;; h9 y& W; z' x& n% I
              }. d/ L' ]  K  d( W2 i! R
          }
    " r2 d* }, Q; Q2 r9 R8 X% U      if(n==1)
    % F5 q  Y: U! ^/ h) e4 \" c  B3 s          if(a[0]=='1')! L; E4 O! p+ s2 X3 ?" Y" w% {
                  printf("11");
    2 h4 j, N6 C8 A, ]          else; `" [* U* K+ U* {' {
                  printf("1%c1",a[0]);/ o' y% b/ g# E& `
       printf("\n");9 T2 N, H& D  a* w% I( ^* O3 @
    }
    5 \! F7 F5 Q7 L, X2 u3 `6 N. a评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>+ ~7 t2 z+ g8 V% ]6 t, O8 v
    #include<string.h>1 c) F( o  o: {
    void main()8 q% T5 L/ _  F, O; q
    {  int i,j,k,n;" M7 m0 F" ~5 @+ I
       char a[50];5 j+ d1 H8 i  s+ Y
       gets(a);
    * F2 h8 P( \6 b- \6 g1 M. Y% \   n=strlen(a);
    8 `% D* s- ^7 o7 R; ]5 b2 ^' ?; _: _$ U! }' S
       for(i=0;i<n-1; )4 n8 R# ^" P( }: m/ R, E
          if(a==a[i+1])
    3 ~3 ^- ]+ j- D( f4 c" c- V2 J      {  for(j=i+1;a[j]==a[j+1];j++);! g$ L7 g8 `. i! [. e) e
              printf("%d%c",j-i+1,a);
    9 ^, I3 k& {( z1 y/ m) A3 Q. e          i=j+1;! z. g; @3 ^5 K3 A9 W( [# u
          }
    * P6 O5 }6 D3 h1 C& ^  r, {9 b      else" \, ^% ^) C- Q6 J- [) N& t' y2 G
          {  if(a==1)3 ~2 b' m1 ~0 P
                { printf("11");
    + D; V# {1 _0 Y                 i++;
    " u# g( D5 c5 o: E            }, c9 b) U0 o' {2 c% n' ?
              else
    + U& f; C+ ]' k+ B% E# ~' o/ u) Z/ Y          {  for(j=i+1;a[j]!=a[j+1];j++);% J7 e: ?0 ~: X" T* j
                  printf("1");
    + r5 P0 Y, f' `9 Y              if(j==n+1)
    : b! V& W: W/ Y, z                  j--;( Q  \# u- f9 i9 D
                  for(k=i;k<j;k++)
    " S- A1 I+ f/ m% y8 E                  printf("%c",a[k]);
    & F% U' X1 Z+ y. P              printf("1");
    $ w& |5 s) y3 ?; X0 H* s              i=j;
    9 l* ?* F" M$ |6 Y, k6 l          }. J5 @4 \3 v; `8 l5 `8 m- s, T
          }
    2 f3 S: M7 x5 M+ }9 `      if(n==1)
    4 p6 B; ]* q5 w8 C7 L3 t          if(a[0]=='1')
    $ j* l* B. X5 _7 ?% }' Y              printf("11");
    % l7 z6 n3 d9 ?          else+ @% k$ o/ H. T* s. u9 S  J$ B8 g
                  printf("1%c1",a[0]);9 P8 z1 \2 Z( v4 R- j5 S* s
       printf("\n");
    * l' {8 w4 C0 B7 e/ V5 M/ B: p3 a) C }    example2:#include<stdio.h>$ {# U+ M: G+ g- I, m% f
    #include<string.h>% ?+ }8 g! N! |# f* n! s
    void main()) Y, J& C8 z" \) C+ C& f2 N. i
    {  int i,j,k,n;
    , B& c5 D% P* Q6 L' Y( I- Q   char a[50];
    ( n2 H5 U: [5 W& X- @5 K  O   gets(a);. u. z6 W2 F0 \7 `) C
       n=strlen(a);1 ?0 e( z: ]; C- u# |

    ; d/ t+ O# e$ P; X; N   for(i=0;i<n-1; )
    1 s; k  a0 f' S+ t) W      if(a==a[i+1])
    7 {8 K( w. t. M8 C' E! `) w( R      {  for(j=i+1;a[j]==a[j+1];j++);
    # m0 R( A: @) ?" u$ I          printf("%d%c",j-i+1,a);
    0 S6 p( d& g9 G( ^: A          i=j+1;- B$ f) ]) r! Q
          }
    3 ?  P+ e: l' {      else
    * U9 B4 Q' a3 _5 L, }      {  if(a==1)- e# L$ a8 p* g( r. x3 \& Z4 f# B
                { printf("11");5 K$ N) [" @6 W! J. r8 O
                     i++;+ v: h% `7 f1 o; g" {. [! j
                }
    2 Q) \9 q+ J9 B$ B% u          else  j9 B  j9 B7 ?4 x9 d
              {  for(j=i+1;a[j]!=a[j+1];j++);
    ! M2 y& v0 D6 O8 g1 a! ]9 ?, a              printf("1");
    ! m+ k) G1 V9 t2 R3 J) D              if(j==n+1)" e4 r: b, x, J7 N5 V- n
                      j--;. \) n$ |$ a3 S( G8 g. ?
                  for(k=i;k<j;k++)6 y: b. v9 [, N, G6 _: W& J  \
                      printf("%c",a[k]);; }' a" ~; ^+ b* j
                  printf("1");
    8 z1 \- i/ m/ O8 v' d% I5 \7 G              i=j;
    6 v5 _+ k* ~! r7 j6 U9 y. \( O9 w          }: S, x; C( T; [0 w5 P0 j5 I: r
          }
    ( L# D- N, M# B. n' J- e* ^      if(n==1)$ ]$ r7 M5 ^" G7 F! d3 E/ q# p: u8 D
              if(a[0]=='1')
    ; [. @: N+ ]- w" `! E0 z              printf("11");
    ; V6 z; w* ?# E8 o( A; L  s          else1 N% q2 Z$ \+ ^
                  printf("1%c1",a[0]);4 I! ]( i1 }; W; K0 d
       printf("\n");
    5 T8 Z7 {- t  v# Y$ h8 f+ ^ }
    9 S( }% C4 g- ?8 r0 O( r5 Z, }   example3:#include<stdio.h>
    1 H4 b. f% Y4 f$ w#include<string.h>
    ' Z6 o# q' R' ]void main()
    , P$ l6 I* v/ w! ]1 [# C{  int i,j,k,n;+ d! y" h. F6 r  a0 A4 `! j( {# p
       char a[50];$ x2 o, z# N4 ?6 Q$ E9 s
       gets(a);
    ) n7 z, e: b) T* A6 h- Z   n=strlen(a);
    . K' I) u3 K2 P
    5 Y: H4 W5 _2 U, [. f$ X   for(i=0;i<n-1; ). G" W; w, _8 s+ f) x4 `% j
          if(a==a[i+1])* h+ X2 t) P2 W: B
          {  for(j=i+1;a[j]==a[j+1];j++);
    , O- `' _$ m0 A- e6 ?$ }5 z          printf("%d%c",j-i+1,a);
    6 c. k3 T  j  `+ }) d$ _          i=j+1;
    : V# N! g+ f; m1 z' `      }
    % y/ {! q0 R7 B! E. W4 g% z4 M# I      else4 n0 Z: P' J8 i. E; d
          {  if(a==1), x( I! \; j& v2 Q" I
                { printf("11");
    * C4 E/ x/ B+ ?  r9 F: d# E) I                 i++;
    6 p1 }3 g8 \; c            }+ ~  j4 u% v, Z! U) ?/ z% s
              else- m" f3 I6 Y* V( l; f# N
              {  for(j=i+1;a[j]!=a[j+1];j++);5 n' L! a' h4 v+ M2 T. [* S  E4 {2 `
                  printf("1");7 u* d( A( g) Y' J7 A( X% }
                  if(j==n+1)1 r  [$ `: V7 k7 r8 H
                      j--;
    : [. X- P6 ^2 r' v  g! v1 U2 b( b              for(k=i;k<j;k++)" _7 _6 o2 v* R" ]
                      printf("%c",a[k]);3 m  w# F4 A2 J+ q) b$ `  A5 a
                  printf("1");
    $ n3 t) z; a: u) m% B  U              i=j;3 z% D( G( A) C! v5 q: {$ `
              }$ Z  U. O- C8 ?: X9 P; c7 _/ x: [
          }
    " U8 a( b- ^2 I9 ?      if(n==1)
    ; x- Z1 _4 F' Q" \: \2 u- J/ H          if(a[0]=='1')
    / s( `* n" ~' [# U1 @! y% W              printf("11");
    ( i3 `/ y0 t. D2 Y5 v* X0 p          else
      l0 \: B( e' K" y6 X  z# ~, _  D              printf("1%c1",a[0]);5 O* s; }# L/ Q0 R
       printf("\n");5 D: n9 [9 {7 K9 H3 {. |8 A
    }
    0 ~/ _' X* \' h; p' }# ?      来源:编程爱好者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%

    该用户从未签到

    回复

    使用道具 举报

    6#
    无效楼层,该帖已经被删除
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-31 10:19 , Processed in 0.525455 second(s), 81 queries .

    回顶部