QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6577|回复: 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 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  t4 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: oAny 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$ MInput
    ' h0 ]7 Z. f; H1 a8 v9 `
    5 c" D( U+ h- v2 d' tThe 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& SAAAAAABCCCC4 ^" 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. XUlm 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 p9 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- R4 ?+ 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 evoid 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
    转播转播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-9-1 14:41 , Processed in 0.389153 second(s), 73 queries .

    回顶部