QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6514|回复: 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 8 w8 N) }5 L% W' P3 t

    5 O% G& J% F: [1 O) IYour task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 0 X4 e5 p  Z0 H
    7 u5 z  \$ k- C
    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. * C/ {' f( q0 l' u' X
    ! G1 b3 F9 o' E; d) x" J' c6 j8 {( L
    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 . e4 P( |, u" x% }; x
    sequence, it is escaped with a 1, thus two 1 characters are output.
    3 Z+ T4 m2 S" u$ k; E) b
    # F/ O9 q/ y: z- K) H" l- s! f4 cInput 2 d+ O" Y8 Q3 n: d5 H

    ; j- y7 Z" t: k" h. ^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. ( X7 B  X3 Z/ u0 F4 w8 F9 _) R
    " k% _3 c2 Z& {1 [8 m* }
    Output
    8 ~4 [9 H  c2 _* E7 b7 Y9 M! T1 _  f& ~' Z  b! E2 ^) 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. ; n- H6 L* {) V1 ?# X4 ^

    # u- r( X& c% J2 w& p7 A4 [2 [输入样例


    ! W! }  U' U' {( q8 B( B  H/ @AAAAAABCCCC
    0 e* W* D* S5 L( k, G) G* S8 e12344
    6 ^% X2 B5 d8 z6 H& J) X

    " k* }# \- e" H2 {5 a. y& X

    6 S/ f" a8 D  z9 Z输出样例


    % Q, E4 J& \! U% m' [. z+ H& _6A1B14C
    0 \: b5 T* y, B0 q4 s4 D7 |0 U11123124
    ' S  _( O  P4 `$ w( a" n

    % G0 R4 s. h8 K" ?9 X7 H

      V9 {( q. X$ a$ }Source
    8 _- g+ V0 q& m! `! C+ N
    7 ?. p  c4 K. a% aUlm Local 2004
    5 |( ~8 t5 \, b$ ]3 {+ B. O7 }4 E" U0 N
    example1:
    ) ~* C9 L" l; Z3 u' J( V0 k& |#include<stdio.h>
    + ]) R8 s, j1 a1 w8 _  J#include<string.h>* q* w6 p% K" x
    void main()% G1 @8 ]. |% K/ G# ]3 r
    {  int i,j,k,n;3 [7 g$ S: }; l: e: }: }' J
       char a[50];. ?. S* [* L* D5 v0 D
       gets(a);' T6 {: O( [, M1 ?. o4 o' H$ k9 Q
       n=strlen(a);
    ; N5 G: Y% h3 H9 R! D0 x
    2 I: [% y# F' h) a   for(i=0;i<n-1; )( K, U% t0 o7 y( u- P
          if(a==a[i+1])
    5 A# V+ `- H2 F; ]; ]  L4 H+ r      {  for(j=i+1;a[j]==a[j+1];j++);
    8 i1 Q  h2 x3 P  j$ w6 D          printf("%d%c",j-i+1,a);
    ) y" x8 z9 }$ _0 u          i=j+1;
    ' I& Q. D7 M$ P$ e* h      }
    . c+ A+ _: W6 c1 o- t, P# K. e9 _      else
    ; E; d! L$ d$ v% m# @      {  if(a==1)
    ( Y7 Z& k$ ~( V4 M0 b            { printf("11");
    9 D6 u& {6 h' Y$ d3 k                 i++;" K' {) p: q- r. L/ ~
                }' ~0 \+ j& K* e4 N
              else6 O0 R: K0 M# F
              {  for(j=i+1;a[j]!=a[j+1];j++);
    5 |& `) k3 S' b" |  k              printf("1");
    0 m' B6 s; {9 k5 _! }              if(j==n+1)
    " o: T& y0 _& y  S2 G2 T                  j--;
    ' F6 V3 N! I3 L  g3 o, p. s* A              for(k=i;k<j;k++)
    , ]3 F+ j% j, q1 L' Q                  printf("%c",a[k]);
    : R: d& P9 Z' F- T* \. C. n) s: W              printf("1");" ?3 a8 d" F! }% d3 P
                  i=j;6 v2 B# \5 Q( D/ G
              }* h. [2 |/ H: S+ r4 l0 O
          }8 Z8 }0 \; F$ b% Z
          if(n==1)
    - r5 V/ f- H7 l4 h          if(a[0]=='1')  w. G# ^- M/ @# R' ~
                  printf("11");
    + W0 S, v' f$ r/ V8 Q5 n0 h          else- I1 {& g( M6 F0 m6 v; f1 _
                  printf("1%c1",a[0]);
    & T1 E3 }' d; s* B$ O   printf("\n");
    0 B3 \- `- a* G4 N* M: n; o }
    2 H. o9 V* z/ R$ b评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    0 b0 r2 t6 e* r' q- _7 x, C#include<string.h>
    4 z; q) h, i3 Z5 d8 i. qvoid main()" V: N7 h$ F/ a2 [
    {  int i,j,k,n;
    + F7 V# f; w( v  N7 x   char a[50];
    : |- ]; i9 P% d0 e! u   gets(a);
    - X: C7 n4 @) T& e& q# ?   n=strlen(a);& _. K4 p3 b! L2 \/ L
    + f: F) J, k" c, ~  e( Y
       for(i=0;i<n-1; )
    6 y/ B+ n( j0 a# x      if(a==a[i+1])/ t, |* B6 K7 I2 Q$ e+ x- V
          {  for(j=i+1;a[j]==a[j+1];j++);. W. h3 n* V' Z3 i, e
              printf("%d%c",j-i+1,a);
    5 G" _& E5 c4 m! p          i=j+1;
    + q6 X3 Y$ a( |      }
    7 R2 r9 T9 O% ]* v! z! T      else
    , q. l+ c* p( u      {  if(a==1); @: c: |  V2 B( E" j
                { printf("11");
    , z- C4 \! V9 M  W5 G                 i++;% k- U6 F' i: X. O% }
                }
    1 J' d  d1 u4 E5 ^& ]. g          else
    ! [: @4 |$ X4 h. e  E$ I          {  for(j=i+1;a[j]!=a[j+1];j++);9 v/ ~% |* c) h
                  printf("1");
    3 r) d; B! o0 x+ W! d3 c# R              if(j==n+1)
    0 O3 S0 _2 K4 H! X& O* y2 o                  j--;
    & C5 y1 F% H1 S9 G              for(k=i;k<j;k++)
    7 y+ E; M6 b1 J3 k0 F4 s                  printf("%c",a[k]);" P* u4 n+ d& v0 A9 S( T
                  printf("1");/ D$ c4 c0 ?- m0 y1 U! Z
                  i=j;
    ! ^; j$ l7 z, M4 ]% f  K; [5 Z          }+ E1 B) G7 `+ |0 o9 p6 j7 R: i0 z
          }
    7 A, }2 B0 b5 }; v* z      if(n==1)) j- \2 M; B: n) m/ y
              if(a[0]=='1')6 a; u3 t5 m) W1 t
                  printf("11");
    $ I: H' V! @4 O+ P- w          else$ @; `1 e% ?- }/ ]) ?& f
                  printf("1%c1",a[0]);3 h) D; [) C2 }) W$ }' P' H  x
       printf("\n");
    / g. r$ K8 X* Q }    example2:#include<stdio.h>
    ! X! ?/ B" y- [! N3 p#include<string.h>
    ! {: X) q2 z$ E4 x# J/ p4 g! c' `void main()
    3 }- Z* a) g+ H  v{  int i,j,k,n;
    6 [) v6 r; J+ @! F4 ]( k   char a[50];, e! s' w# e/ k
       gets(a);$ y, `% o; Q  R- x! N
       n=strlen(a);
    . g, Q) P0 V3 J$ _/ X* B3 F2 `" z. r5 ]/ M
       for(i=0;i<n-1; )
    % H; O  \2 _& Z      if(a==a[i+1])9 w: W9 Z) o0 O" p& z8 j' _, M
          {  for(j=i+1;a[j]==a[j+1];j++);$ _( x7 F- ^  v" y
              printf("%d%c",j-i+1,a);- u, A5 `9 V6 E5 |
              i=j+1;
    / q0 u+ e3 Q$ L5 W8 r      }
    - c; }$ p! [7 L# @. m4 J% q! i      else
    : I- ?" b! k4 M0 p: s* y3 E4 o      {  if(a==1)( _* m  X# l) X' i* r- y# P
                { printf("11");
    ) g5 i3 M; s) H% |1 g                 i++;
    : m, X8 D7 `! L; z* D5 r            }
    , M  `( k& z' f: \/ ^; I          else
    ( Q7 i& R( j; \( `          {  for(j=i+1;a[j]!=a[j+1];j++);
    6 w- \+ X: C$ x. @6 |              printf("1");
    7 N$ E( ]6 g9 |4 |, Z              if(j==n+1)! C: I2 ^$ C! x' c, R
                      j--;
    , Q+ l. B7 q: m! ]3 M0 p& I) m              for(k=i;k<j;k++)
    ! M, {7 f3 X6 T8 |7 I  K3 F- ~                  printf("%c",a[k]);
    . z/ f3 N* ^5 A3 b9 l8 C6 G% n; E              printf("1");
    1 x% r  t5 e8 z3 t% l              i=j;: N  K. @6 q% @, {" x5 [
              }% C3 V. \. h0 X. @# ^8 B% P
          }
    9 j+ d5 V1 }3 L! v      if(n==1)
    2 |+ S6 R. h" k4 E, {          if(a[0]=='1')
      |" d- K. d* X  U              printf("11");7 A! ?" @: Q, s% R( u# \
              else
    - }) K" E5 t9 R, [5 o7 X0 Y" O0 X9 ^$ N              printf("1%c1",a[0]);" z) o. T+ M8 D* v( y
       printf("\n");4 B9 k- T* j- A5 L" _( a7 }, K
    }6 ~* s' c9 O- y5 p
       example3:#include<stdio.h>) E9 |( i+ M+ _
    #include<string.h>; |1 G+ m% S8 c) R
    void main()
    3 @' h0 r0 ^2 b{  int i,j,k,n;
    8 r# N% O, b5 v* Z" _0 _- d- ^   char a[50];- K3 W" V: c& |, A9 b. H
       gets(a);
    8 y. p  ]# v3 a7 _" |   n=strlen(a);
    ; F, t# e$ u/ [/ W4 U. U
    ; H/ ]3 x& m1 ^   for(i=0;i<n-1; )1 k4 Q" O" U% X2 P* m
          if(a==a[i+1])
    . M9 m7 W2 q. p      {  for(j=i+1;a[j]==a[j+1];j++);# n3 J. b# x& k3 ^5 K" J& y& i
              printf("%d%c",j-i+1,a);/ a- K* U) ^. b; Y8 Y' z
              i=j+1;
    - n/ f# e3 O  Z9 D; h5 N$ m      }
    - ?8 ~$ h( m& r2 L6 r, ]      else
    ' h2 T6 P9 ]) c( C" @& Z# [      {  if(a==1)$ I, g! Z! d4 `: d1 N* Y
                { printf("11");4 Y3 I' O6 [" Z$ @+ R! e/ v
                     i++;' V7 y$ @0 M* a: {% ^& Z9 y# X3 O3 j! n
                }
    " W$ N- o' S( @& G% x          else
    & K( j. H" V2 m8 C. @, u! T6 u( _          {  for(j=i+1;a[j]!=a[j+1];j++);
    . j- a' C" L3 K              printf("1");
    , g$ Y5 y6 D& S4 a4 ~2 T' L              if(j==n+1)
    7 w1 v, ]. F( U8 A( D! D7 n                  j--;
      f( G2 z2 f6 Y              for(k=i;k<j;k++)6 t2 T% T/ K5 q  X! k: t
                      printf("%c",a[k]);
    ! U5 N' {) z3 @  m8 @              printf("1");! H: r9 g$ _+ }& T$ y8 l
                  i=j;
    + N# X( H% o( U; t* U9 z$ K          }
    . h) l* `$ c2 v9 s  z. ^7 x      }
    ! Y" h# z/ v- F5 F- _2 y9 J' {      if(n==1)1 t/ e7 O8 g  W3 o1 u; Y, A% J
              if(a[0]=='1'). Y; ~7 @/ H( a% r6 U/ u% v" W0 z; b$ w& P$ F
                  printf("11");
    9 [3 T; q  ~( w! e$ Z          else4 d+ U# Z9 l& C) \) w' o6 G
                  printf("1%c1",a[0]);$ X5 C- w  @1 v8 H6 r
       printf("\n");6 }# B0 u! T9 s! r+ C0 |
    }) f% b: L9 q" k# q: E; z+ y0 Q! ^
          来源:编程爱好者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-6-14 11:42 , Processed in 0.477272 second(s), 82 queries .

    回顶部