QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6518|回复: 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   P0 X6 L, l& |, X4 o
    3 @  J- b, R0 `( E: ^4 [
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    ) ^: y# T- S9 z8 P" O  i+ e
    ' a/ w! I# U! E4 t2 B5 f. a) hAny 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.   v6 ^% o8 B2 c$ b+ g, ]
    8 f1 n2 C3 N/ [# f3 c5 B) x
    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 - u, o2 }# g8 b1 E* J9 C
    sequence, it is escaped with a 1, thus two 1 characters are output. ; U( E: T5 B! Q" @- i+ H1 M
    5 s8 T& |4 C9 f) T
    Input 7 _! M% O; b1 j+ S  P7 o3 U
    ! }8 j( D+ p7 g: R8 [( e$ k
    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. $ s% I+ W' h% S1 c% [) _
      G4 E" a! S' v7 }% [! t0 `7 n
    Output
    . D" [! s1 V- _% n+ u9 _+ i: s* w/ y2 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. * c4 r! E5 ^- m# g7 S+ n2 O( w: M$ [

    * Y0 A( A! g0 D% o( l4 a! O输入样例

    : m3 p+ J* B. c4 E2 ^
    AAAAAABCCCC' a5 d' _7 a8 y( q+ s* r
    12344
    * R( T9 x- N0 ]0 H! {


      A( z; Z; y; P
    : q$ [# t5 A0 k0 |9 u& |, N输出样例

    0 H4 ~; y* O0 M: A3 J
    6A1B14C6 V- R* a' T" d7 S" W9 Y  O; o
    11123124+ K/ j  Z+ ]. k" R$ K$ {

    4 q( S7 }6 Z' x. q/ h" g( X$ K! f9 G8 ~

    1 |4 q/ B0 q8 ]* U% N5 xSource
    ! J, @7 y' S8 c5 e- q& ?8 V' h' y# ~! L2 y- a7 y
    Ulm Local 2004
    ! h- L' v9 K& R6 q( K1 L* K; k) r) }& h4 F" V2 Q
    example1:, n/ `$ X3 a* n2 T
    #include<stdio.h>
    ' g, E' y7 |4 V; i8 F! w#include<string.h>
    8 R) H+ z2 t0 a9 ~- ], rvoid main()
    * d, y- O! f1 Z# ^{  int i,j,k,n;1 I4 y9 I, `! u& z/ p2 r
       char a[50];
      y$ X$ c+ a* L   gets(a);+ T' D, S/ A. t$ k1 y0 r
       n=strlen(a);
    ! K3 s) h) I7 t3 r* I2 y0 P& j' Y7 B: d
       for(i=0;i<n-1; )
    4 _) s# c; y( {/ Y      if(a==a[i+1])9 E1 ^) M* j! E" A4 s+ C5 o5 T+ E
          {  for(j=i+1;a[j]==a[j+1];j++);1 ^1 [' U! M, t% C! P
              printf("%d%c",j-i+1,a);
    6 k3 g) k  B$ t4 L          i=j+1;, R) L; l& e  c
          }# `' t0 d3 Y- K# O% |) Y8 |
          else2 M! [( K$ F( h" S6 }
          {  if(a==1)
    6 [+ M" O0 ~. s: R8 y6 K, Y1 w3 E            { printf("11");
    4 t  N. ^( F5 i- J  O                 i++;/ q5 o3 l& K; p" k: \: F7 `: }
                }
    / u0 G$ P/ j# V6 M- R$ l$ K6 ]          else- C% k: r9 q8 L$ q+ p# H
              {  for(j=i+1;a[j]!=a[j+1];j++);# r: H' T1 E8 v* d1 u4 M6 j  J
                  printf("1");
    6 J3 @& D1 H1 i1 y! h              if(j==n+1)
    * e+ }3 a- @3 |" j                  j--;+ u8 j% b0 ]2 |8 B
                  for(k=i;k<j;k++)! w6 r  n8 M  i2 u- P4 I" t6 ?/ S
                      printf("%c",a[k]);1 s- a: b. p6 x1 G* P" }5 T) T0 a
                  printf("1");+ c3 h" [' n- P7 m  ~  p
                  i=j;. W4 f  q2 ]( e! w0 E  u
              }
    6 b1 |& G9 }1 o1 x      }
    2 l. |/ i1 U8 c) L7 C# e      if(n==1)
    9 u' w  z- l3 a+ @1 w- n/ ?% l% ?          if(a[0]=='1')* U/ J% b; X! `; w0 ?2 _
                  printf("11");. H1 {, v, I+ s
              else
    % Z; z0 X" ?/ f5 ?2 x5 t) O4 H              printf("1%c1",a[0]);
    3 s% {3 w' B2 `; F; c) l   printf("\n");
    ' x: N% [. y# e }
    0 p1 u; X+ q6 ]评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>% k; Q; X6 {+ W/ n- t
    #include<string.h>
    0 |  a$ `6 l  P, e0 `% F% Z0 kvoid main()9 i1 a3 e0 W4 m* l  o4 j7 h! P
    {  int i,j,k,n;
    9 P% l9 L4 k9 q8 v+ z8 X, R7 ~   char a[50];, n" Y1 @$ }5 m+ M5 O3 E0 G% B
       gets(a);' b& T* z$ E" g3 p0 w9 D+ F6 [7 `5 G
       n=strlen(a);0 v3 s, R( j) i4 {; t6 E# s/ j0 A

    4 o% ~+ c8 _3 j$ r  y   for(i=0;i<n-1; )
    0 L" h+ T8 H* L% {2 k2 p5 s/ l$ t      if(a==a[i+1])
    $ W1 {8 |/ {8 ]" S      {  for(j=i+1;a[j]==a[j+1];j++);
    , |& u8 V- u' c/ ^1 [7 n3 O- ~          printf("%d%c",j-i+1,a);0 Y* S5 a; O: v9 G3 _- O
              i=j+1;
    + A+ i- [" U' m) y      }: U9 F" E. A& `8 c
          else
    0 h5 }8 P9 x; {; g. r      {  if(a==1)
      p: z8 Z8 S; k; D2 p            { printf("11");
    : T( v+ q9 ?: |/ ]# H5 Z                 i++;
    3 \" F. i( i% u. e; L, k            }
    * S& r! Z/ b! {; D9 `0 X7 F          else
    + j4 z6 _0 p! @6 n; V6 g' c          {  for(j=i+1;a[j]!=a[j+1];j++);
    8 a& ^& U% @6 |( @              printf("1");
    # A! `3 K. o, k& f2 h              if(j==n+1)
    & @5 d) K7 v0 W* t                  j--;
    + [# E" t% n7 L1 p* N+ u              for(k=i;k<j;k++)
    $ v( f; F. I- g/ i. z% r                  printf("%c",a[k]);
    ' x' v) I, H  t+ ?9 Y* ^1 O              printf("1");
    6 c8 E7 B- z8 b2 L8 U( c              i=j;9 d2 c0 Z# c: e* k. t5 a+ F
              }
    6 u# O, h9 Z9 q. {      }# q3 f8 d+ [3 Y1 l
          if(n==1)* \3 H8 e! N. i( J6 d2 y' n
              if(a[0]=='1')  e8 ~+ b; m4 z/ g, V
                  printf("11");3 R5 W4 a1 s: F/ G
              else
    * p8 h) N6 Q9 X& K              printf("1%c1",a[0]);
    ' Y3 [( b0 Y1 ~4 A# G   printf("\n");/ b1 J2 P" t# e! t
    }    example2:#include<stdio.h>2 y7 j8 X/ z" h
    #include<string.h>. \" m! U9 q0 ]2 \) g$ T, ~1 r1 t3 p3 x
    void main()
    6 Y# p5 B/ _5 Z{  int i,j,k,n;- s0 q! \# ], }* T6 Y# L
       char a[50];
    + l) ^* l6 x/ g0 q; E5 k   gets(a);3 g% k: T" o  t+ q# V& e+ r/ R
       n=strlen(a);! c: C, @* G3 V8 D; x: s3 C! b
    4 n7 Q  H# ~  r9 Y) K
       for(i=0;i<n-1; )% [) h. r0 \* n
          if(a==a[i+1])
    2 w: N; G8 l0 s2 w0 K9 Y! s      {  for(j=i+1;a[j]==a[j+1];j++);
    : m+ t  G# q7 f" T# w          printf("%d%c",j-i+1,a);& Z" m7 d! s; E3 a$ \3 \
              i=j+1;
    , q! }6 d* T9 e9 l4 M: E      }9 _' ~! ~* d+ C6 R: c
          else/ C4 n2 L( g7 b, F1 p8 C) K- W
          {  if(a==1)# W2 u& A6 V5 C4 V5 N/ j
                { printf("11");
    5 c  m6 c2 H% z7 R3 n1 x" A$ M4 H                 i++;1 h0 r. K+ i) K& t. V
                }
    ! D, X$ u2 l: z4 T+ ~: @          else
    ' |- h1 a! {. m' z6 m" L" ]          {  for(j=i+1;a[j]!=a[j+1];j++);
    , V, H, X  v8 Q9 X, S              printf("1");
    / v; _, b2 h. U9 Q6 C4 l              if(j==n+1)
    & }4 l2 N. J! l0 Z! _9 J% \3 I: c) Z                  j--;
    : K  u: [+ G4 J6 k( i              for(k=i;k<j;k++)$ l) L4 y* S9 c* S4 c3 B7 ^2 p6 P
                      printf("%c",a[k]);& \$ ~0 l. w/ J) A# e! f
                  printf("1");8 ^# q* X3 D' T# U* [# p% v* M0 S
                  i=j;# x0 j4 j! n/ v& j- H2 v% v
              }
    2 K% H' `7 o; `      }; x+ O- d& z$ Y
          if(n==1)
    * Z6 H. |7 \! c1 U          if(a[0]=='1')& r4 @2 Y% _# U2 Z: c: J
                  printf("11");
    * \$ ?, L& c& Q' u5 i  f7 x$ S          else0 }/ K  m% ^2 Y6 }4 D- x
                  printf("1%c1",a[0]);; Z+ T6 d/ C0 k9 C$ D7 p
       printf("\n");
      G' O$ F+ L$ L0 ~9 M1 l }
    7 P+ _, v' F2 |. y   example3:#include<stdio.h>
      ~1 c: [1 B# K1 y' j( b#include<string.h>
    / K* z9 L% `+ G. M; c, d4 r& z3 M0 Vvoid main()
    / _+ b7 {# M$ }{  int i,j,k,n;
    ! O* T' c/ I% b# X  f, p  A8 B" d   char a[50];8 Q# R% `1 g. `- x5 r
       gets(a);! _; a+ s: [( U
       n=strlen(a);
    ! d% o+ \) i7 [- ?0 ^1 Z6 ^8 I# W& z6 W* v  x5 j" S! V5 w2 s1 G
       for(i=0;i<n-1; )% n2 D, \) I5 g' J; m  [
          if(a==a[i+1])
    * X" y+ x7 i2 ~8 e      {  for(j=i+1;a[j]==a[j+1];j++);+ R# H5 @. g8 m7 X8 f0 A: j1 b7 }
              printf("%d%c",j-i+1,a);
    ) n( w- h/ w/ D) Z, J7 @  a, I& M          i=j+1;; N) y+ y; j/ g/ Y2 c+ Q
          }# @  D# Y  O6 I! B
          else
    ) `- b  U/ t  X- n+ @" u0 {      {  if(a==1)
    ! P$ s$ h& o! i7 N            { printf("11");
    . T5 ?( o* L% O% L' x7 p1 T( Q                 i++;) I' E$ `8 v- A+ m5 W1 n# B- b
                }2 S* F+ `6 q" |% r
              else
    0 {( R6 J: u, M) \          {  for(j=i+1;a[j]!=a[j+1];j++);
    5 Q4 v1 B- c, q. u+ Q! l7 |: x              printf("1");
    ( @+ L) \( g/ e" C7 J( ~; A              if(j==n+1)
    0 _, _0 ?7 z, n0 v9 F                  j--;
    2 N( o4 d8 D# @! ^3 I              for(k=i;k<j;k++)
    0 Q& T8 |6 ]3 X5 A% U                  printf("%c",a[k]);: Z7 B& E6 u$ {( A1 I8 @
                  printf("1");
    3 X; t0 X0 ~! E: [) |              i=j;
    : e, ~* ]  C( y" p; _          }
    0 q; V+ E, |/ I' B$ v      }
      t% n9 T( f) C1 x8 _3 @      if(n==1)  b5 i  e6 k9 M# l! q
              if(a[0]=='1')
    5 }3 U2 E7 v6 x# w              printf("11");; \+ j! ~9 W/ v/ K1 V
              else. f) E3 Y# E3 o; L* [' _
                  printf("1%c1",a[0]);. J- W0 b5 o6 m1 q$ M5 D, s; S
       printf("\n");  F  I- Y% S  G, w% F) t
    }
    1 o" p+ |2 Y4 l7 z) 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-7-6 08:48 , Processed in 0.413616 second(s), 82 queries .

    回顶部