QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6466|回复: 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   a( x$ C5 |/ K$ l8 d* j% q

    ) m% G; R! `) ~: FYour task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 0 c: Z2 r) P2 W7 L" \% J  X
    / Z0 p4 f5 O3 e/ `  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.
    ! P0 g& w0 ]) }0 x6 [- r, A" `# Y; o7 b$ o8 m' [
    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 / `, F5 X" C; |
    sequence, it is escaped with a 1, thus two 1 characters are output.
    & Y  y  ?6 o9 i7 k* ?& r
    5 H6 n* v1 i! }7 dInput ' h0 x4 x3 V0 g/ i
    5 `  e$ y4 a. j5 q! s8 M) x
    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.
    5 r( r- i4 [5 V- W: H1 E4 s4 k9 U
    Output   @6 X2 P' c' x! P' H9 y& D

    : `" _; Z6 p: V2 uEach 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. : C2 I* k2 R' _$ P1 `& p
    & o! P7 z$ E4 l; d3 B. R: h
    输入样例

    . f0 |5 v" b8 U9 f2 j% m1 X
    AAAAAABCCCC
    ! g. t/ r7 }5 A# p, m9 W; k12344
    1 W8 R) K) p* @0 F  C& }

    . b+ c% j, E4 T
    . G, J1 L0 Q( u% a4 K' ^7 O
    输出样例

    ) ^! F% ?" Q3 `* r
    6A1B14C
    4 G" ]: v, g4 T/ Y11123124" w3 d. r9 Q  X2 _8 t/ d" B* W4 Z% L# M


    , B! z5 l5 S) {. a" E. W9 P0 P& F2 e
    Source
    7 k' Q" o$ X' {; T9 m: u
    + \3 ^, k6 j1 zUlm Local 20046 s% h" I: q) h/ F# T& U+ |

    % H& V2 d7 {' R1 I* @: @4 ^example1:' k/ t7 v7 z+ d1 l4 {
    #include<stdio.h>
    8 M  _5 e1 i8 Q  _3 w* Y9 J% x" Z#include<string.h>8 P' c* k2 \* ?$ v2 o' y( O
    void main()
    9 {: U$ l9 Z; T" O3 b{  int i,j,k,n;! _: v  o/ f, s
       char a[50];
    / I$ v! D7 {# t9 ]" B! l8 ]   gets(a);
    ; E; x, a* G3 H1 T2 Y8 u8 u   n=strlen(a);
    ! M$ c. m6 Z1 L5 Z( f7 d1 n% e( R. Z7 T+ ?* b
       for(i=0;i<n-1; ): R, R: N: a7 `# Y
          if(a==a[i+1])
    - W" A- C3 O9 b. p% Q: s      {  for(j=i+1;a[j]==a[j+1];j++);
    + O' e0 A3 h7 s7 y, U          printf("%d%c",j-i+1,a);
    / ~7 P, T7 f9 H# G! j" Y          i=j+1;( j! D/ W3 @+ K+ j- H/ m0 f
          }4 `0 \9 h6 M9 P# U* d* Z: K' ^+ d
          else
    & W! w9 U. u( ^& Q; w. S& J      {  if(a==1), V. G9 I: s. S3 R
                { printf("11");5 b; i& H. a: z- |
                     i++;. W3 P6 X+ |3 ~" ]3 W) d8 U
                }5 B3 J* x$ }4 ?3 o
              else
    " V: m: r# M; S/ M* Z          {  for(j=i+1;a[j]!=a[j+1];j++);% Z) r( U* ]0 m6 U. G5 d; O
                  printf("1");
    . K/ k8 {. w; x              if(j==n+1)
    * I; s4 ^. c! |4 w/ }& m: L                  j--;
    : R  y! Q/ q1 d  ^: N, e              for(k=i;k<j;k++)
    # z3 C  S8 |- _  x4 Z, s# [                  printf("%c",a[k]);
    9 A; s) q% O& O# o3 T/ L  G              printf("1");
    ! r( V! `$ K6 b5 W4 ?6 L              i=j;
    ' S7 X3 d* Q: Y* O7 H          }
    # G) d8 W' h, z3 @" V$ X      }6 h! u# C; r3 H6 n
          if(n==1)4 Z! W* [4 e7 Q* U
              if(a[0]=='1'). ^; h0 E/ V' d7 w1 D9 S
                  printf("11");$ L4 i. _$ ~9 Y' `8 C* S
              else2 l  ~; d" m) x5 B. W$ w# c
                  printf("1%c1",a[0]);  r5 a0 e+ y9 d  ^6 z3 i- T
       printf("\n");
    5 `  p6 X1 p3 W2 B2 Z5 Q% Y6 y }
    * A0 d2 }& z0 f% z& j评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    ' z' T( x/ f% H( S4 U#include<string.h>; K+ u: k: u, n8 s, B, Q& M" W. P1 x7 N! F
    void main()
    % i0 F3 M) m* G: z{  int i,j,k,n;" r& m6 b, m; h0 R
       char a[50];
    $ W3 r, F3 v1 K' @, ]0 }; }   gets(a);
    % N9 y" r+ R7 F7 A4 Q' |( x   n=strlen(a);& I) b+ s1 @9 i. H% ^

    - [9 x: z( X) E( H# r   for(i=0;i<n-1; ), a+ n* _$ r0 }, Q6 {. L
          if(a==a[i+1])
    $ W. D% n( ]" r) F: g      {  for(j=i+1;a[j]==a[j+1];j++);$ O0 G; A/ b* G( ~) v
              printf("%d%c",j-i+1,a);. |3 N7 h; A* c$ F
              i=j+1;$ C# W$ A; i4 T" F7 m& ~9 h% c6 s3 l
          }; m  x( b/ X8 _8 G; J
          else& ]- N( L. ~- `2 v
          {  if(a==1)
    % I! L( ~* y' \/ s( |7 W            { printf("11");" k2 a1 T7 o/ P' ^9 ~
                     i++;
    : U+ D+ @7 A1 l2 u, J, m            }' ~0 [( i% ^3 |
              else9 |, D4 l# K! |
              {  for(j=i+1;a[j]!=a[j+1];j++);' s7 {- q) S  `, b# R
                  printf("1");& n1 b3 a- P( n' i6 L- j2 X  }
                  if(j==n+1)1 b$ A+ D- C5 f( I! U7 `& ?. v2 T
                      j--;8 s9 }- c2 G+ t3 c+ z
                  for(k=i;k<j;k++)! h( c0 K) d: J) I% E" H
                      printf("%c",a[k]);7 V) W8 A3 `: B
                  printf("1");
    3 @2 {  a6 \/ G6 N: h              i=j;
    1 p" @) B- k0 R2 ^          }
    ) A# v  W' L3 H& z      }6 |5 T- D) v* j8 f
          if(n==1)
    9 W( s. ?4 W: M! Z          if(a[0]=='1')
    ' w- D4 [! d- X% ^$ o              printf("11");% K- R  \; n5 E) f
              else
    * s) C! h, f, H4 q              printf("1%c1",a[0]);
    ( U' A1 d3 C- h$ f0 y% I5 G   printf("\n");
    : l/ C8 r+ @6 F) O9 s }    example2:#include<stdio.h>7 ?" Y( l# T$ i3 x
    #include<string.h>! M- p  ?6 E" Z0 n5 v0 w
    void main()5 W3 o( R; |) a- _  T5 A
    {  int i,j,k,n;) w# G0 ~! ~; G; Z2 w
       char a[50];
    5 f; L( F" M2 f3 x" t8 `8 F: d   gets(a);
    - ]- S& x7 m1 x) Y2 F/ L   n=strlen(a);
    # c: Z$ ^& A2 Y6 F0 E/ o5 R
    ' z3 C! I, @) G1 M& I! H0 @  T6 _4 T   for(i=0;i<n-1; )( L5 j6 R% r, [! J8 ^/ X4 m6 V
          if(a==a[i+1])
    " c( H2 o3 s/ B$ H" w: I      {  for(j=i+1;a[j]==a[j+1];j++);) y+ x3 K7 \  w) Y# E" I8 G' u
              printf("%d%c",j-i+1,a);
    6 O. U9 Y+ H: |          i=j+1;
    7 ^5 ~, b: w) H: k- j      }! a) r1 i3 _; w7 r8 A
          else
    $ B2 S4 j. p& R0 f# U6 w      {  if(a==1). ^3 L% K7 T  I
                { printf("11");& E: N, r3 @  ~) G0 [/ D. Q& D* k. V) ]5 K
                     i++;
    , @0 z9 \% [" u! H* q$ U8 M            }
    6 M9 K' I2 L5 h% s2 K3 i          else5 ?7 j+ a% c0 e' S9 Z) R
              {  for(j=i+1;a[j]!=a[j+1];j++);
    . J- K! z; @, S# @0 x              printf("1");# J' s% h: z$ ~; w1 |
                  if(j==n+1). o) d' l" s. }! j+ p
                      j--;
    ( T# Q  H) w7 |( o2 ~( \, n) [" b/ [              for(k=i;k<j;k++)
    + W5 N) Y/ O- f$ W. r9 j6 @, B                  printf("%c",a[k]);
    3 H9 M, f" `5 w' v              printf("1");/ {1 c. g% y9 N% y" C7 M
                  i=j;. V: ^9 u& }8 m+ A, b, b
              }
    5 d% B  ^7 Y6 {$ F# v      }" w0 j' m+ ]  O* y2 V0 z
          if(n==1)
    - \5 X, s( [+ }8 _* C. E' V          if(a[0]=='1')
    , P9 F: A- [) P9 W* j  K) w' f8 J3 `              printf("11");
    3 n- V0 E+ r" @- \  F3 A          else) n7 q$ d3 |7 g% ]7 j
                  printf("1%c1",a[0]);
    , |! a( t. [" {   printf("\n");
    / l. Y4 R( l1 \- m6 y }
    - {' {  u" \" H( @0 a& \   example3:#include<stdio.h>8 d6 N0 Y- h5 m9 V
    #include<string.h>  @. g' p7 E& v9 [; \
    void main()
    7 U+ M2 X$ G& G  q% R{  int i,j,k,n;
    * A1 x5 p3 D' R' [$ X. J. U9 j   char a[50];
    6 I  k& T# H4 Z  p3 X1 G   gets(a);
    4 u/ y( B* f! \1 G7 m: Z   n=strlen(a);
    . a+ V7 U# f' d) ~0 {' j0 K% n- i% U- U% n- L
       for(i=0;i<n-1; )- C  f: b8 Y% i+ h0 y
          if(a==a[i+1])
    2 G# W5 C- `; \2 K& ^      {  for(j=i+1;a[j]==a[j+1];j++);( z0 y/ @  N3 a( @: Q- h: |
              printf("%d%c",j-i+1,a);
    ) V7 c) s; E# q# B+ H2 r! m          i=j+1;
    * M8 I, B( r, n* M6 l      }9 O& \4 h- V6 I( I! q* T+ X  R+ I
          else& T% {1 a8 r' @+ J- U, n# u7 h3 J; p
          {  if(a==1)
      t, g$ D% t. @8 L- g            { printf("11");
    9 l: f. C) h& z) a) Z& ^) X4 G) N                 i++;# Q* o, y8 J0 d+ n9 o/ {8 x
                }7 S- p! }' O3 \: z% Z3 c* p& J
              else
    . j% |  S8 z! ^8 M7 Z, h          {  for(j=i+1;a[j]!=a[j+1];j++);$ e3 p4 r3 Z. Q+ W% w) c
                  printf("1");% P% H: B7 q2 x
                  if(j==n+1)3 t9 Z! b5 B& D/ N6 L- V
                      j--;. l4 p, u: Q7 }- Y: H# s7 i0 g
                  for(k=i;k<j;k++)
    . }& d4 \. @6 Z  L* e( B4 @& M5 @                  printf("%c",a[k]);- @$ M4 W, k( |* V3 Q
                  printf("1");
    / x" k0 U2 b3 k' r+ B& |              i=j;/ c( g) ]1 k- r1 L, u7 p
              }
    5 y6 f+ J8 I8 ]/ m      }
    + X6 W% e% I& j  n8 }8 L      if(n==1)
    : o7 d8 U* {5 g" {0 m, \          if(a[0]=='1')3 x, J- M, S* W# ?+ \
                  printf("11");) B$ J8 F, ?& F" ]
              else
    7 i% w3 ~6 t4 }3 p: k! I. v' w              printf("1%c1",a[0]);
    3 r" y! L$ j% B/ }+ t) P6 B   printf("\n");
    8 t6 j' x, ]9 z! F; f! F }. q  r6 W4 L- k: K0 E) z4 Z( V" X$ D
          来源:编程爱好者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-21 08:52 , Processed in 0.499633 second(s), 74 queries .

    回顶部