QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6464|回复: 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 5 e8 k/ f% X9 O& t" {

    ( y% b# T$ U7 W4 B" q( lYour task is to write a program that performs a ** form of run-length encoding, as described by the rules below. ! J1 F3 W% X+ V9 b) v
      p1 X! g/ Q/ g/ _( @
    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. & L: M5 k( x5 m: q6 Z

    ! `, M: M: H2 v8 n$ K  |. G1 @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
    ! B! y, C( @) ~( N$ nsequence, it is escaped with a 1, thus two 1 characters are output. , X. |% b4 q0 ~& l. k: k3 ^

    6 N, i. Z, \, D; K3 m- QInput
    ! b3 x' P" g0 E& P" L) D/ b& Q0 e0 l
    # z6 Q% h' W8 G& u! k) }4 i& kThe 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. % A5 w% x9 Y- ~* X/ A8 K
    7 W& t, @; Q, l; V5 u7 t4 _3 i9 n
    Output
    + G; X3 K+ z+ r. A% n) K  b% D; v  i0 B3 n: X( H! V  q$ v2 A8 ]! A
    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.
    6 @" W% D& g/ E0 e, C: O4 `; w: C5 z3 n' s) ^* h
    输入样例

    2 M- O* Y8 a& Q1 ^4 R) I
    AAAAAABCCCC5 H8 h- ?/ D7 X6 a+ \
    12344
    , c1 B* u5 g; s& E/ I/ b& s

    9 l! p3 b! `+ q- e
    . f3 j2 _: j9 x5 V
    输出样例

    7 O# l0 r4 W' X* A6 `7 l- O
    6A1B14C0 H  o( {+ s- S% c
    11123124
    & s0 Z% S* Z; P1 g& R# e. `) H


    ! i) l1 Z& }7 \; ~1 L" H; v  n" S  p, O( @3 c8 y; d
    Source
    5 R# s4 [0 G) c: j& R! B4 y, C% ^
    + g" S: O. H& [6 F+ f+ BUlm Local 2004# v" a* Y, ~3 ?4 P) X

    . `0 m0 s' |; S$ j( E# r- B$ Uexample1:
    9 Q% {  W. s& `6 f#include<stdio.h>7 G8 O) j( t8 Y0 `& {
    #include<string.h>
    5 m$ K  R( c/ E2 R1 [" U; g8 U( w/ Gvoid main()
    0 |9 k* r4 y3 U6 n{  int i,j,k,n;
    ; y* C3 T1 W4 I: S2 ^. y   char a[50];
    . D2 @- D6 J' g8 \! K  i   gets(a);
    ) c' }+ K; i2 V3 g   n=strlen(a);& G: E+ N' i' o) m2 r( @; ?  ^

    . e0 U+ ]  K# i( R; g( N   for(i=0;i<n-1; )+ C" w2 N5 P* {  ?
          if(a==a[i+1])( y9 Y0 f; @, Q! s: U( K
          {  for(j=i+1;a[j]==a[j+1];j++);2 m" }# z- o) @3 [* M
              printf("%d%c",j-i+1,a);
    ' q% {7 K2 f- i# c4 w# l8 Z          i=j+1;
    5 u4 o3 o+ \. B+ y      }
    ( _+ ?0 O: d* p      else6 N( _. s' t* ?) J
          {  if(a==1)
    + v6 Y9 v, O3 F) y, ]8 M, i2 ~7 U' E* E            { printf("11");" J) H4 s8 u- k9 y  X
                     i++;
    ; f6 c5 `6 F+ y$ A/ {+ B% y            }' z/ h! b2 v$ s, S6 h
              else
    4 u5 H/ S4 H* J' X  S) j, n          {  for(j=i+1;a[j]!=a[j+1];j++);
    ) w+ J) A' O8 d# A/ l              printf("1");" L, y: M- @6 R; v
                  if(j==n+1)
    9 W2 S, c6 N6 z3 C8 |# P4 V                  j--;
    $ ^# U$ ^) d& l- W" \              for(k=i;k<j;k++)
    " @" ?( W) ~: R' c9 L                  printf("%c",a[k]);( K; m3 ~+ w. k; _) p! ?
                  printf("1");
    8 F5 v  u) G) g2 `$ b6 J$ @6 Q              i=j;1 _. F% |# |# @) T! n, ?: p
              }4 x/ [, \8 L3 V$ Y8 p
          }
    5 _4 M  U3 O% j( O6 t, W      if(n==1)& G7 `$ w. f& T. L) P
              if(a[0]=='1')
    ; i$ y6 O0 u) p$ I1 G) v              printf("11");" d8 D# T, r" s
              else
    : E& o( u: d* j, E              printf("1%c1",a[0]);* O7 a, v# u! B9 R& [$ f( ~: S8 U
       printf("\n");
    0 ^0 Z1 `  h+ K5 a  C1 v }$ v, v* I  `' Q0 P) l1 \' ?
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
      T" f/ `2 H, G, s  f5 N#include<string.h>  N' t/ O7 j5 J; s
    void main()
    4 n* R  \. p  N{  int i,j,k,n;, [3 _4 y& R9 k
       char a[50];
    3 U6 i: c! D3 f7 T( E4 g& m   gets(a);
    0 x7 Y5 {+ Z: U$ o5 T9 h+ s1 H   n=strlen(a);
      T, o" w; u* t9 J. _; m& Z- W3 ~: ~# F9 k
       for(i=0;i<n-1; )
    ' y4 K  U. G. H- l8 |      if(a==a[i+1])6 @; g7 X" a9 X9 @) ?9 `
          {  for(j=i+1;a[j]==a[j+1];j++);8 J' J# I- L; Y( U3 i: t! z5 m4 f
              printf("%d%c",j-i+1,a);
    4 V/ s: i7 k1 Q- p4 ?# h          i=j+1;
    : J1 e7 }! q5 D- f) ?# [6 p      }; E' R  Y0 O  T0 w7 V: B7 @2 F7 t
          else) l7 R" k- N% {, Y# v
          {  if(a==1)/ Q; C! @8 y/ J/ N* D) n% V
                { printf("11");
    - j; v) s5 L7 H% Y1 J5 m                 i++;
    . {# Q! E. i  s! D            }+ ?# k" k% \" O  @- @
              else& O+ T8 x5 n' p4 v) ^# r
              {  for(j=i+1;a[j]!=a[j+1];j++);7 J- c. J$ G6 j1 Q* [
                  printf("1");" o. W+ y+ a, M, W2 T+ R
                  if(j==n+1)
    - l) t$ t: |+ ^7 o( G: e+ u: p  x                  j--;" h4 ]+ K  C$ h7 M" W3 E6 k
                  for(k=i;k<j;k++)) ^1 e) u' _, j$ ]. ^/ o
                      printf("%c",a[k]);; V9 z3 R8 E5 t$ ~! i, P2 Z
                  printf("1");1 P/ j( z3 {% w+ g
                  i=j;
    + v# r3 `$ k. O- H+ O" Y: C+ {          }# m! g! i% k: w# F' d
          }' u( j2 P, c* _- ^# x
          if(n==1)- M4 p9 G9 Q) q* `6 C% ^
              if(a[0]=='1')+ [% w- G% A: t' l) G! [% A
                  printf("11");1 I% o+ t+ k# K0 }
              else" ^7 W' U4 I" E% S! ?
                  printf("1%c1",a[0]);
      M/ l4 H% Y9 f4 m, ]   printf("\n");+ d, N, B2 y* c' a! O
    }    example2:#include<stdio.h>1 X% x& l+ P; r5 I' v5 d- Y1 |
    #include<string.h>
    9 t( D6 ?: Y7 x! J* K' h# c5 q$ q" cvoid main()
    - q* r$ a& d" N( A' r  n{  int i,j,k,n;
    9 F' v: F, F0 `) u( R1 r  V! S: o- y5 }   char a[50];! ]! ~* H" M0 [( s: U* S2 e8 h! W3 @
       gets(a);5 ^, J' z* i7 Y8 |0 ^2 _
       n=strlen(a);' J; ], l' T$ ]# `: v) X- K) l. ?
    % w+ W: T5 }: s# |( }3 n, y5 m( k
       for(i=0;i<n-1; )
    ' o" u: y3 R" J/ {) _  B      if(a==a[i+1]); l2 P2 y# A* W1 S1 o: \: d
          {  for(j=i+1;a[j]==a[j+1];j++);, x6 G% S9 ]( B+ p- ^4 F! {3 f
              printf("%d%c",j-i+1,a);4 T7 d6 Z* ^! e& ]- m' k
              i=j+1;! B. }& P" g/ g
          }
    ! `7 ^2 d& a% o' V% N1 r% V- `      else' g& Q+ \) i5 P1 i' ?# k! x
          {  if(a==1)
    9 n3 M7 W, P$ h6 r+ N            { printf("11");: x- n! l) p% K1 i4 ^3 U* l3 T- x
                     i++;
    7 D% v7 d6 H% {. @            }
    ) x  Q7 I) ~+ ^4 ?: n! ^$ l          else3 z+ D: p" p7 o4 \/ @
              {  for(j=i+1;a[j]!=a[j+1];j++);( Z' S0 }/ G- `+ P, O$ \
                  printf("1");$ ?* q4 Y% o9 Y& g
                  if(j==n+1)
    : [+ {) @* w! i/ n8 A7 @! f! o                  j--;0 F5 B* T6 w+ A
                  for(k=i;k<j;k++)
    0 B. X+ ?5 v2 f5 L$ f% j                  printf("%c",a[k]);
    5 c  E3 k* b' [- A              printf("1");
    : d) C6 Z0 |  w: S; e              i=j;
    . Q9 w0 R/ b  [/ L          }1 v6 \( n# y" r7 k7 D) A
          }
    , g$ ]3 m) Z: I, q+ W      if(n==1)
    - P& k1 K# P4 G7 @  a3 d+ t4 `0 ~          if(a[0]=='1')
    8 J! i5 `# [: f3 b4 k              printf("11");2 q* \- F* j; t
              else
    4 f. M0 Z1 l5 k! R3 h8 _              printf("1%c1",a[0]);8 M$ S0 o* S; K, P
       printf("\n");
    7 ^) k! J8 n- E0 e# A }
    ( U' Z* r" u2 {- S: a2 S# }0 o. N- i   example3:#include<stdio.h>
    7 W& d  }9 O( `# Y* n0 k( ]#include<string.h># g: o1 Q4 `: ^9 w
    void main()
    ( R* ^- t/ j5 e+ o5 C: S0 T( ^{  int i,j,k,n;
    : O' E0 x' Z7 L7 d3 f   char a[50];/ h4 W+ e2 l8 s  v" P+ `
       gets(a);/ X' D1 P" e" R3 B4 W& t, u
       n=strlen(a);
    6 P# i3 E3 n2 B! n+ Q! [; C
    # p3 I# {  @' I7 z6 `6 v   for(i=0;i<n-1; )
    ) c# d0 _+ [: e$ a- _8 ~      if(a==a[i+1])$ b: J% Z6 p& M  K
          {  for(j=i+1;a[j]==a[j+1];j++);& `3 g) R* o. @2 ]% }% [" q
              printf("%d%c",j-i+1,a);# O# M. C) ^+ w, P2 @# t
              i=j+1;- e3 C7 \# l8 U4 X  M1 |
          }
    4 k0 ~5 O5 F7 D: @) d/ ?8 u/ E      else
      D0 j/ l- c# ]) C      {  if(a==1)8 _- @3 K- ^. Q5 i2 \8 Q
                { printf("11");
    8 R! @. P2 a7 O                 i++;
    / Q/ ?" [: p4 [" J& s; A, D            }
    , d' E$ }; |3 q; h/ n8 V8 F2 j          else
    1 i# }/ E6 L) q& z          {  for(j=i+1;a[j]!=a[j+1];j++);& ~) m  x# {* ]" H
                  printf("1");
    ! b2 [; A! ~* |9 m+ C, k9 A              if(j==n+1), b8 H. K; w/ [* Z
                      j--;
    1 I1 A" P% Z8 j* \  D& D  C              for(k=i;k<j;k++)
    ( Q6 ]& \$ M& r+ }& R& V$ `                  printf("%c",a[k]);1 A, C' h1 p' d  `
                  printf("1");) l& L3 G; Y2 C
                  i=j;7 Z6 N- |+ Q, r1 F. j& [& m% d! n* L
              }) S8 U3 H; d2 z! }, L6 Q" F
          }
    / _: ]" O' b' @8 \0 @# ~      if(n==1)9 K0 m: Q2 J/ Y3 j- s* R
              if(a[0]=='1')  P5 B' `! n) o
                  printf("11");4 I$ v7 ?& J1 A- p( N9 }
              else
    5 U+ m8 q0 f, V/ `: k              printf("1%c1",a[0]);4 r9 Q$ A5 F9 l# A1 r6 x
       printf("\n");% z4 @* u- _" Y: k: O, X, d
    }3 [( F3 K2 \# y4 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%

    该用户从未签到

    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-20 16:52 , Processed in 0.474590 second(s), 74 queries .

    回顶部