QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6469|回复: 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 O" o& C( S6 b  o) }. H- Q  @9 D" f, l
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    , T' C8 }$ v: z3 h/ ^
    6 j  B/ _1 e6 @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. ' w" D: B! {: Y4 T& z8 f

    7 k1 ~# o9 a6 |  R8 h" `# tAny 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
    4 z; o* n* A+ U* z( s/ n3 jsequence, it is escaped with a 1, thus two 1 characters are output. " [0 m4 Q& D6 T& |

    : d" O  C  K* v7 sInput
    0 A0 p% s, _  e% w2 e8 v
    ( R( g3 H" o( S$ G% K& p/ b5 U; IThe 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.
    2 m, L& E8 Z  N( x: n/ f/ D
    ' E) V) {; D9 t4 J  _2 }Output ( M( e% x2 w/ p7 W  f: Y

    6 s  c. n: E% W( m7 ~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. % S8 w: h) ]' M
    8 `- X6 b4 J8 @0 d
    输入样例


    0 o1 g0 L7 M7 |  w6 E6 OAAAAAABCCCC
    8 }, X; S& ?4 W2 k123445 ?5 t. e7 A+ d# ^


    ) V4 s3 J9 F. }: r8 g0 R# U& B; Q1 W. `4 {2 _
    输出样例


    ( m. _* r2 x6 s3 V9 a$ n! t! B6A1B14C
    1 \$ B+ r9 R. E# J1 i9 P11123124" R0 J2 B- [) q0 Z: T% \

    - s# l0 |( g/ F7 D7 X
    & {9 G- w$ R# V3 Q
    Source: y6 v7 Q9 R- C, n9 t+ ~
    0 _. L! L8 O# Z( H4 d
    Ulm Local 2004! F9 T0 s3 I$ o8 y8 ~, r- p% e/ T
    5 j, }8 y4 x% _: f
    example1:% p. ^% e! d( \3 _" z: B
    #include<stdio.h>
    2 y- U$ r9 L" T7 k#include<string.h>
    " H4 c% z6 @: p, b$ Hvoid main()% i6 o3 M) W0 b( s2 p
    {  int i,j,k,n;
    # i% O% {, D' W   char a[50];, h0 Q% T, S; y0 J$ O/ P
       gets(a);/ A3 Y! v5 _9 z- q
       n=strlen(a);2 ~/ z4 b& c; }# `1 N

    * [5 \5 U, D5 S" B; \   for(i=0;i<n-1; )
    ( Y' u. D$ \5 p# A      if(a==a[i+1])0 ^6 K8 I" o5 a0 \
          {  for(j=i+1;a[j]==a[j+1];j++);
    0 [. f- Q! d$ ?/ o/ Y# p9 X          printf("%d%c",j-i+1,a);
    $ _+ v- N# v3 ^! {$ Q* w* `( O          i=j+1;
    ' @1 e. @4 ~5 O; _" i  V      }
    2 C* A2 g$ _& C3 V6 a      else# f2 X% k& Y1 D& ^* K
          {  if(a==1)6 P6 d* }& w% ~  s" o8 m
                { printf("11");! I$ _8 Z2 M7 x3 i  A
                     i++;4 |9 h7 r0 D6 R  k+ w3 `9 `
                }6 k2 A' V  ^/ z1 Y+ T; @1 T: P
              else
    . r+ {- N  v5 c) k          {  for(j=i+1;a[j]!=a[j+1];j++);. N3 ]- j& e2 f
                  printf("1");5 L  J6 h' j1 S
                  if(j==n+1)
    * I$ t9 R5 h0 k0 P0 n8 ^                  j--;
    5 Q2 S- I4 |1 }5 I/ R              for(k=i;k<j;k++)
    + z# D  `# {5 f6 F                  printf("%c",a[k]);
    + _# `: a/ m$ a1 |7 X' }              printf("1");
    7 \) r/ ~* q' N4 K1 N              i=j;% h. Q& R- g) x2 @: A, E
              }2 u5 D: q5 T6 G; s% [+ Z+ g
          }! S' j8 m( Q! ?! F' w
          if(n==1)9 g+ \6 f  V- M
              if(a[0]=='1')
    4 F8 e5 v# z3 s' D8 F% F              printf("11");- T/ F* h8 J% k3 n
              else
    & v5 H: H$ z% _# [5 G              printf("1%c1",a[0]);8 V( F( ^  d9 T! @4 r4 E  F
       printf("\n");
    : b$ i9 B' z+ x% c1 g }2 x7 t7 |/ [& F
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>2 B5 Y9 O; c9 `" |1 P
    #include<string.h>
    " S& q+ e" p. B  _  Wvoid main()
    - G! m! E3 x. J. [! A{  int i,j,k,n;- f; F4 y9 V1 l7 f1 ^3 ~8 r* s
       char a[50];
    . E8 w7 E6 }' \- F+ r" z   gets(a);4 {$ E& r( D- o5 H% d, w- f7 u
       n=strlen(a);
    3 {  S6 R6 }6 l) R2 {
    & d2 C# |7 N# K& i) G9 E* q# ?   for(i=0;i<n-1; )  T9 y* u/ O, C
          if(a==a[i+1])# o2 p; Q3 N+ r, m
          {  for(j=i+1;a[j]==a[j+1];j++);/ m' n# n( X- S$ ]$ B- x. b0 _
              printf("%d%c",j-i+1,a);; k1 s2 r0 j  T$ T% ^, ]
              i=j+1;+ u- I. ^5 \  [! _
          }6 v( [, Y6 A8 q* A3 p- Y& s+ c
          else
    8 m, I5 p& z( E1 ?  ^      {  if(a==1)( b4 U6 ~9 r$ @$ ?, m8 N! o" g
                { printf("11");# e" l/ V& M: Q+ m
                     i++;! z9 m* K1 M' I
                }! {/ U( W/ R2 C1 P+ }5 I
              else0 W" u' E; V1 u8 X8 M$ X$ B" U
              {  for(j=i+1;a[j]!=a[j+1];j++);# `+ ~: E0 _$ i  z! i. y, F
                  printf("1");- T% |7 d9 Y6 O3 W+ P" a
                  if(j==n+1)% N. ~- f0 `! d0 A' O
                      j--;
    7 I! @/ m) |* ^, G" ?              for(k=i;k<j;k++)
    ) `5 G7 D* d& z: r4 z* F. i) ?                  printf("%c",a[k]);- }. m! [! Y7 t# d  E- j
                  printf("1");7 l! b  B* t5 r4 Y/ Y
                  i=j;7 h8 u8 l0 L; s
              }
    8 Y* _6 S6 k& [1 |      }1 I  s) C0 P. R* E$ K) E
          if(n==1)
    / ^# b8 a% j0 x9 U! @          if(a[0]=='1')
    " Y# K$ |9 J* y% L/ p' ?5 L              printf("11");9 d" c6 {$ z& a7 {% d
              else
    , D6 q$ }6 w. B; y, V, \* Q              printf("1%c1",a[0]);4 d$ T4 Z9 ]2 h5 r  I* ]7 Z( S/ e
       printf("\n");: t; p" L7 B6 C
    }    example2:#include<stdio.h>0 B3 D" q8 J+ G
    #include<string.h>
    7 q0 p( O4 Q" ]# E4 t7 |8 Tvoid main()! K  g1 [/ W% e: }
    {  int i,j,k,n;
    9 S+ O9 d. \0 l, z, W   char a[50];& O& [) W' L& ]
       gets(a);
    1 p, a: D8 N4 ], O- v6 V   n=strlen(a);
    + c* r: q8 L' z3 c# P. O. o& ?0 x7 u1 J  A4 `$ z% W% G
       for(i=0;i<n-1; )( P" o& p; C. j+ ^$ r/ I8 ]
          if(a==a[i+1])" A0 x7 y, t3 G& N0 m* ?
          {  for(j=i+1;a[j]==a[j+1];j++);
    ' G& W& ^& l$ d6 Z" R) C          printf("%d%c",j-i+1,a);; Z) k0 t/ @3 s( S3 O1 _. f
              i=j+1;
    4 B9 W) `2 v2 O      }
    $ G. f2 y, u; N* f5 K      else
    2 d, `% p0 B. y      {  if(a==1)7 o( G) f; q9 x6 Z4 k
                { printf("11");- S- ^' t% b2 l5 s) ^  @
                     i++;0 L9 S& J% h7 Y* [; y
                }
    ) k1 q/ f% G  u* A          else
    " X' ^1 f) t5 K+ v: C: K          {  for(j=i+1;a[j]!=a[j+1];j++);7 u  {8 R5 t% N! s) D9 ]
                  printf("1");
    ( g3 |2 E. {% O5 ]              if(j==n+1)1 l: Y6 Z' u3 Q6 X2 ]% v' f
                      j--;
    . j4 \5 Q  w2 g! g9 G6 q# P1 Q              for(k=i;k<j;k++)
    # S% z- Y5 s6 |/ S                  printf("%c",a[k]);
    5 N8 a( A$ V7 L$ x4 I" ]              printf("1");! X0 z; @% b+ r
                  i=j;
    + x" W( u: f; S% [% ~          }9 R: b- ~4 v7 I& ^  }! D1 b
          }
    8 G0 p) `' @$ |% Q8 S6 C      if(n==1)" s+ |2 Y0 }* U% v) n1 L
              if(a[0]=='1')
    7 u! W  [" O/ Q+ x  f              printf("11");
    1 _  L3 i1 t! v) Z+ x" h          else
    ; S5 \7 `& r  B) K              printf("1%c1",a[0]);
    - z( P5 p0 Q& K& s' k  g+ k   printf("\n");
    ( C/ l, ]4 \) r }: `/ A" U; N0 e+ Q3 I8 _
       example3:#include<stdio.h>
    % {6 L7 P5 ^6 j3 x" o7 M# ~7 r#include<string.h>
    8 L' B/ C9 p7 Z+ R& I& I7 Q6 Cvoid main()( M: x6 b, y* Q
    {  int i,j,k,n;
    / p" F; C5 v% Q, ^   char a[50];
    + E5 [& u6 i" Z( G. v$ e   gets(a);
    ' o7 s: F) m3 M4 I6 D- N0 a   n=strlen(a);" |% i) n( d; @
    1 n4 J3 J& w! B; h: C
       for(i=0;i<n-1; )8 v& p( h3 X. u  c: B
          if(a==a[i+1])
    $ d/ v' [1 i+ G8 _# q# Z& ]      {  for(j=i+1;a[j]==a[j+1];j++);* v5 O# e' w/ }% D# I- g
              printf("%d%c",j-i+1,a);
    . `7 _9 `- D1 K' }) m' T          i=j+1;
      _' \; _5 X2 x) Y! D      }9 Q9 T6 R0 s9 b: w' ~' e% y
          else9 F$ q: e) c5 j% K; K4 U! j
          {  if(a==1)
    9 J+ P$ V! R% ?5 F8 s            { printf("11");8 D* J, G/ T- `2 I
                     i++;3 `* g( V9 i+ `& r0 e
                }: R9 [7 v/ f, N8 V7 O
              else5 `9 [, a! q6 A& F$ s+ k
              {  for(j=i+1;a[j]!=a[j+1];j++);
    ) @' h+ [" b2 f' B9 \: t5 E. s6 t) J              printf("1");
    8 f) S  d7 H5 c              if(j==n+1): Y2 M$ `  m7 [& u/ D" s
                      j--;
    ( W3 k% ^) L- E. y7 ~              for(k=i;k<j;k++)
    , n; p0 J. |  e7 q' n1 ~( F                  printf("%c",a[k]);# L. ~+ V& o" w4 c2 D
                  printf("1");( Y) F! s/ Z+ S4 g4 N
                  i=j;
    1 j* L! t/ z& h0 `          }
    . R8 D, H& b5 p9 v      }: G% g( L+ R( z1 X& e
          if(n==1)% E* m! {6 j; p& d3 r
              if(a[0]=='1')
    1 z2 A% Z' o5 H/ X) D* R( ?              printf("11");
    * {  G* T2 Z" L          else2 Y5 X9 h9 C8 A; Y* w
                  printf("1%c1",a[0]);. P; i$ q2 f4 {2 z  w4 i/ x
       printf("\n");
    " z: h9 C& A' b) v }
    ' n" e/ S% q; Q4 H$ s1 y' v      来源:编程爱好者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 12:23 , Processed in 0.474061 second(s), 74 queries .

    回顶部