QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6262|回复: 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   w  U" m  S% g2 g5 t
    ) l. ]. [0 ?/ B6 l! c
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    5 u3 ?7 X2 t! Z3 L. ^0 G7 @) t. M$ ]. L9 k- O3 J  J' j# F; ]
    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.
    3 i1 i3 l0 E" G7 W  G* z6 T" r* K7 d, q- Z0 K3 j1 o' \! R
    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 ( i% \) H7 `( |" c- T6 g
    sequence, it is escaped with a 1, thus two 1 characters are output. 6 Q" B5 z5 _" Y+ g3 o3 N

    6 C# w" f* ]) W5 U+ X. m2 F0 NInput , B/ W+ `" k" w
    1 q2 X* }" V/ L
    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.
    ) O  ]/ u7 e0 V" Y
    % U( @7 \2 n/ |8 G3 ~Output , a7 C& r! Y: r" i

    ( d( q; c5 @' e! R& 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. , e& m0 L0 \8 l. ]

    # c# ]3 x6 t/ R输入样例


    . ]2 @/ k- N$ {; p# d4 D4 ?5 B: uAAAAAABCCCC, I0 X) ?* y' x; v2 D- {
    123446 x2 r' z+ G' ]

    ; Z/ m  {, n) ^; N( S, i, j% \! X
    ! f6 k! u6 X8 y- J* M% T) X* s
    输出样例


    ; e. {* x' q) w; N) V* ]6A1B14C
    $ Q, F. B3 \! M- }111231249 [8 [! l- D) c4 S! X" S

    : i( M- W$ A; J+ n' f4 ^9 t! N
    - g' J. d9 n$ K5 ^4 X
    Source
    2 D$ V0 ]) r0 u5 J. ?$ u0 `% f% b2 H7 {8 x" z. x2 s- p  G, p
    Ulm Local 2004% N0 n" U& S9 `+ g. v* o+ S' N

    8 h! B5 z. s2 p' F) xexample1:
    7 ^5 i4 L3 `; p5 p# J3 t#include<stdio.h>$ K8 `- L+ E7 O. w. B9 X
    #include<string.h>0 |/ o& f, _$ i7 h
    void main()
      C7 h2 Z- R4 j# Q- y{  int i,j,k,n;
    # [2 M: T( E& W- a5 X) c8 L2 z   char a[50];$ \. R$ [7 {9 [& D. F0 k2 u# b
       gets(a);
    7 c+ |4 x; X, J2 B7 ]" x% l   n=strlen(a);
    3 ^3 n3 s0 |/ t1 u
    3 o% R( U: C/ B% A! w4 C! W   for(i=0;i<n-1; )
    ; e! p8 r8 i/ ^) N9 C0 J      if(a==a[i+1])
    ' g4 w( h0 O# t  A: C      {  for(j=i+1;a[j]==a[j+1];j++);
    + m% N" t3 M! H1 P, o# N0 Y- ?          printf("%d%c",j-i+1,a);
    ' r7 \3 d, Z% x/ v$ Z& K          i=j+1;8 q* e& \! M1 |1 I  n) K4 W
          }0 E0 P/ s/ ~  ~5 D
          else! \# @; Q* I! m# Q
          {  if(a==1)
    5 w( r. g; z# C4 V- e2 z            { printf("11");
    6 F1 X9 n% ?1 \. ?+ X                 i++;! @' E- W; z. p& I& e# D% R2 y
                }- \0 n! r4 z1 Q8 J) N  k* L3 G
              else+ B& v6 P" E# q  _5 b5 k! P- G
              {  for(j=i+1;a[j]!=a[j+1];j++);
    5 J" l, |- g# ]: ?) l              printf("1");7 b- u( _) {; n$ P
                  if(j==n+1)) J8 g0 Z: c3 S- l1 s+ K' `
                      j--;
    # C/ p4 U4 N+ p              for(k=i;k<j;k++)
    . u9 \+ Y0 w! t) |2 f! ?; z7 |                  printf("%c",a[k]);
    ! i& C# ?6 Y* D9 K0 ^              printf("1");
    ) Z; _9 O# \7 [* _' B  f7 R              i=j;5 h) E& E" x% D2 {
              }
    % ]- d' M. F. b% v  k      }
    & F( W* Z. E- Y8 a$ ~      if(n==1)
    2 l9 f* o$ Q/ s: Z: f          if(a[0]=='1')3 i( `& [' S9 I4 a: T, Z
                  printf("11");
    7 r( O7 ~! z/ r* k; R: @$ Y5 Q          else
    ' Z0 Z! j0 Q& a# }+ F, D              printf("1%c1",a[0]);
    ' S7 T) v9 u0 o5 I. t! v   printf("\n");
    ( X- h! G9 o+ a }
    5 [& M: S; Y! v, P评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    9 ~  C1 I# h* M" F, u1 M#include<string.h>- s# m- ^- F* d8 d, v4 B6 ^# W
    void main()
    5 s' T: x3 Q8 k5 c6 V{  int i,j,k,n;
    2 q2 l8 R9 j5 ^% }" G0 ^  L   char a[50];
    * L3 G8 s/ I0 F0 N   gets(a);0 _9 ~3 @) u  _3 [
       n=strlen(a);
    & i! @, [+ F, `# G) I( V" T- e& Z4 U4 h
       for(i=0;i<n-1; )
    0 o! d( A' t4 r+ X# m+ C      if(a==a[i+1])4 d! q2 ]# m) ~6 H! z& z! B3 \
          {  for(j=i+1;a[j]==a[j+1];j++);
    : e3 S% f; s* I- O8 O8 E          printf("%d%c",j-i+1,a);. U( V6 c) B: Z8 x" H6 A
              i=j+1;# W2 h, q0 t+ A% Z$ k3 r) S9 P3 ~3 }
          }
    3 O. M: U! Q# A3 l& x      else3 Q6 }, [- |+ R9 m3 ~( |
          {  if(a==1)
    8 ^. Z- {5 T4 u            { printf("11");' s+ J9 {0 P* H2 E5 c
                     i++;
    - G. Q. s9 O0 B# |7 Y, z- D/ z' ?2 l6 h            }& h  r( c$ I! ^% j2 N
              else2 Q! L7 E4 Z' [& H
              {  for(j=i+1;a[j]!=a[j+1];j++);0 Z4 c) j/ s5 x9 q
                  printf("1");2 u! _4 R" }# E0 Y& U3 [- w
                  if(j==n+1)
    2 F4 O/ D% q5 l& j                  j--;
    4 W* E4 l9 y/ h  j9 S              for(k=i;k<j;k++)
    * S. Q& K# D5 V5 H                  printf("%c",a[k]);
    ( \& H) R0 u& p; t2 F              printf("1");) E( `% Q; E/ r. \" O
                  i=j;
    + ~* {% [9 Q% j8 w- A4 L          }" b& u! B9 ?# a  G) m* E- R
          }
    ! F' D3 [# j+ V      if(n==1)1 X' R2 z6 Y$ S) e
              if(a[0]=='1')
    % E6 ~5 I/ _, P              printf("11");" s6 J& n9 A$ E# a3 ^' k. S6 v5 }
              else
    / L$ ^0 a: `/ `              printf("1%c1",a[0]);
    2 \8 U" z2 ~' I; M& ]   printf("\n");% H" Q* e' [1 [; Z: o# R7 R1 [+ o
    }    example2:#include<stdio.h>
    ' l& }9 R7 m6 B; z: p$ H5 M#include<string.h>
    2 h" r& R7 h* ]* \void main()  d. {- B: v2 V4 t' b
    {  int i,j,k,n;
    0 Z) [: N& v, G( p! m6 B0 R% {( |   char a[50];) S8 k: s+ l1 E+ }7 Y
       gets(a);" z& E8 M/ c& L7 B0 w
       n=strlen(a);9 }- k& s: T$ u2 q$ y
    6 }) A, Q7 `- x0 p% b
       for(i=0;i<n-1; )
    / _' U5 F  c* }1 ?! X/ V9 F      if(a==a[i+1])
    * T* P" Y, {1 r9 G% f: q/ ]      {  for(j=i+1;a[j]==a[j+1];j++);- h2 c3 \: Q: S
              printf("%d%c",j-i+1,a);5 [/ O- ~) H5 f
              i=j+1;
    1 `! |- d5 J% M1 S6 i( u# }* J      }0 z. y# u; x1 Y& T0 Y
          else) \9 {. P; V5 c- P+ G( G
          {  if(a==1)4 V$ U9 C; }# Q: u1 N% I% q
                { printf("11");
    ) g  q, t" O1 I0 @                 i++;- r3 K' V0 J* f9 g0 ?" F: C" C8 I2 M+ ^
                }: {3 B7 f( \! X& [) F( v
              else" l$ ]/ W8 U% I2 V
              {  for(j=i+1;a[j]!=a[j+1];j++);
    ; z1 c5 M: u$ k+ i              printf("1");
    : Z/ o- T, J* p. y2 v# @              if(j==n+1)
    $ v# s1 `' ]7 E3 H8 W5 K% p/ [                  j--;# [; B* Z. s; o. n
                  for(k=i;k<j;k++)
    * w# C/ d: o, G+ c1 A# H                  printf("%c",a[k]);3 O, Z' p6 }8 g/ n1 T. z
                  printf("1");
    ! l; s: h' A! `/ g4 r              i=j;
    / i$ Q/ {6 r2 ]          }
      S2 I" A% E  @6 W$ t" x      }
    & x) }  I" C  z7 ^! z; ~      if(n==1)9 l: q3 ]/ J' O% L5 V+ k
              if(a[0]=='1')- K: y5 u' ?9 \% r# Z+ j7 S
                  printf("11");
    6 ~. w0 Y% u* A6 }          else
    3 w1 e& R$ f7 T              printf("1%c1",a[0]);
    $ I# @8 v6 Z6 n6 A4 ]5 w   printf("\n");( p9 b' _$ A$ K) R8 [2 ~
    }* ^3 ?; K, Q3 s0 v3 U
       example3:#include<stdio.h>
    5 }5 p+ A( k8 B1 O: w/ J$ ^#include<string.h>) g; ]) D7 S% s; d! W
    void main()1 o: Q! P2 _5 P0 q2 L
    {  int i,j,k,n;
    3 s, t% [" F$ P) q   char a[50];
    3 w0 k4 H+ O0 v0 d   gets(a);6 C" u: B8 V# X
       n=strlen(a);
    ! R: E  ~% `. O% u" u
    6 r: g8 ?0 b& e% S& F   for(i=0;i<n-1; )" L1 \. b3 b4 J2 W! }
          if(a==a[i+1])7 T8 z& k# V1 i
          {  for(j=i+1;a[j]==a[j+1];j++);
    3 a/ o8 d4 @3 T& D+ `          printf("%d%c",j-i+1,a);, w# d) j9 S" @# v
              i=j+1;
    * Q$ H$ Z% h1 |      }/ M* A8 C- W0 n( R3 L4 c) d) K
          else4 C* ?4 ]2 `: P& b9 H: Y
          {  if(a==1)  W; [8 `! S& Y0 Q
                { printf("11");  D; K! J+ V6 g( W$ x2 n2 v
                     i++;( b1 M$ e+ r9 d' R9 S- B! q/ l
                }+ w3 ]" @9 A4 v5 Z
              else3 j5 I8 y" V8 V/ }0 q
              {  for(j=i+1;a[j]!=a[j+1];j++);
    $ m  b* T% N- g* R& @# X              printf("1");+ O5 e% `* j9 E3 @) H; v
                  if(j==n+1)
    + M3 g( l* Q! O9 ?6 H                  j--;
    3 y5 r' s9 Z/ E9 g0 S# ~              for(k=i;k<j;k++)! F- T9 L( _6 R" d8 I
                      printf("%c",a[k]);
    : i3 x. T' L# L2 }5 p              printf("1");
    $ L7 I6 J* @5 c  ?              i=j;  H- a- Y) U' c" d+ ^8 v6 K
              }
    3 E( Y" |1 h5 {4 q/ J      }4 C8 N7 r( ~  \6 k2 o
          if(n==1)
    + E! V3 i% F  f0 y          if(a[0]=='1')# M" |" Y: p. N! G( p
                  printf("11");
    $ d' Q) u8 B+ t6 z) ?          else) v0 e, u% I) b. {
                  printf("1%c1",a[0]);6 p0 b1 z* X1 H5 d  b. M; \
       printf("\n");
    $ B' @: n% T( ?) A- C6 K }
    : p8 t/ u5 I, e      来源:编程爱好者acm题库
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    6#
    无效楼层,该帖已经被删除
    qazwer168        

    0

    主题

    4

    听众

    53

    积分

    升级  50.53%

    该用户从未签到

    回复

    使用道具 举报

    dahai1990        

    0

    主题

    3

    听众

    47

    积分

    升级  44.21%

  • TA的每日心情
    郁闷
    2013-1-15 09:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    群组2012第三期美赛培训

    回复

    使用道具 举报

    Jackge        

    0

    主题

    4

    听众

    23

    积分

    升级  18.95%

  • TA的每日心情
    开心
    2013-4-28 11:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    自我介绍
    一个不想平庸的男人

    群组C 语言讨论组

    回复

    使用道具 举报

    qnbs1 实名认证       

    0

    主题

    4

    听众

    34

    积分

    升级  30.53%

    该用户从未签到

    自我介绍
    200 字节以内

    不支持自定义 Discuz! 代码
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-11-1 20:03 , Processed in 0.784710 second(s), 79 queries .

    回顶部