QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6542|回复: 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 7 J& A( h" g) h4 H; l0 X, A
    1 [" q2 J5 ^- ], W! c% J6 j3 Q- A
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    8 ?) Y) @" s- W" \* n0 J5 B
      }+ U7 }' E& V' h6 tAny 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! M8 x4 D) y1 e" W$ c

    ' N6 e9 m. }. ^/ r6 w0 o  aAny 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 # \# n+ ?, U2 u
    sequence, it is escaped with a 1, thus two 1 characters are output.
    ! l# o# J+ E* S+ _: \' I
    9 \! i1 i0 E* E  CInput
    4 s! ^) B8 s; `
    ' X2 a3 o! F  KThe 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.
    1 v" o1 |5 k0 o4 W' w; L) l
    ( ~+ @. W- X+ i0 o; U5 c- F/ ?# c/ uOutput
    9 ?" B9 m+ I5 v7 @# ~/ k4 M! R) v& y; v3 ^
    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.
    ' ^; ^. d9 H' u5 [' w4 z( B# H0 L' N
    / r% I  z1 X: e输入样例


    . o% v. h2 ^$ [% i. S( }AAAAAABCCCC7 m! J7 w# Z  _4 ~' ~' w: U+ b
    12344
    " D' [, @0 g! o- x. f' k

    9 S. \5 Q( `; E# Z3 Q

    1 m# e( ]4 {& b输出样例


    7 Y+ X* h' W7 X' k5 S6A1B14C  d/ m  J" F6 Z
    11123124
    - f% d9 B! l7 R/ c- e

    ( c+ g$ k' n2 t& l5 r

    ' Z! {9 L1 Z$ s" v* V+ w1 LSource0 R) o, M  b+ E( F0 z

    2 R! R+ u% [' ~8 e/ J6 cUlm Local 2004, ~0 K6 N) I% A5 F

    : c$ l7 X* @2 [example1:
    ) l) Q+ s( F% b( L#include<stdio.h>
    / a# |7 X9 X/ b5 ?! C& l3 g#include<string.h>
    # G$ j1 y* k7 n( Uvoid main()& z- o" `! e$ r2 j5 T- W, h) i6 v
    {  int i,j,k,n;& ]* ]9 W. p9 K! O5 x, j( e  J
       char a[50];+ t2 q) J- h" F3 a% ?
       gets(a);0 G1 F: E# X% G& j/ d" ?5 w
       n=strlen(a);
    % m+ A8 j6 }+ U* t% O
    ( P& N/ b: g& I. t, B8 m   for(i=0;i<n-1; )  p. x  x& G# F9 {' I
          if(a==a[i+1])3 K  t* h" k0 Q* D6 N: P. Y
          {  for(j=i+1;a[j]==a[j+1];j++);
    7 n  F7 u0 i! p3 ^          printf("%d%c",j-i+1,a);
    $ n! t# T% f; `0 k: g          i=j+1;0 K8 \% Z8 C% e- G
          }* E9 B0 V( _2 V. r, ^  N
          else
    . ]1 {8 M2 A% z      {  if(a==1)9 ]  e% u+ {9 N% n; H! b
                { printf("11");  K% K* W% L4 B1 i/ n  l
                     i++;& o2 V8 _- S: R9 o; n  V) \
                }
    / `: @3 Q. J# _' c% P          else2 ^1 n( k$ K- h  t" N% F+ L
              {  for(j=i+1;a[j]!=a[j+1];j++);
    : o  \! u" `. P5 f7 _, c- T              printf("1");% U& |9 H+ b' {9 j0 b
                  if(j==n+1)
    $ F) c# t2 P( n) K                  j--;
    ' O4 g$ C4 ?& {7 r$ M              for(k=i;k<j;k++)4 B3 H, d6 v( ?; f8 K2 y/ I
                      printf("%c",a[k]);, g) K1 v, b9 g
                  printf("1");/ P$ i0 x$ i2 Y4 R$ @- ]- [4 |
                  i=j;
    / y" t: c9 K, P9 m, R3 ]          }5 z3 b+ M0 |- `. ?7 X3 C: w" l& H
          }; F0 H6 `! k, z: ]7 z) a
          if(n==1)/ \0 \- E% H3 g
              if(a[0]=='1')1 D! s' s3 r1 |3 z2 V6 l
                  printf("11");1 }% ?% r- C0 L  q+ y* j4 n0 T
              else5 o- U1 r7 |$ k
                  printf("1%c1",a[0]);
    / B( R; v) U2 o8 w5 n' Y& G, D' f2 g   printf("\n");8 u) j. r' K& P( M
    }% s9 Z/ S, _# \- ~6 ^# p  L  [, N
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>; l, q& P0 b0 g0 t
    #include<string.h>
    9 z! F2 b  G  K+ j" K7 Pvoid main()( d- n5 }0 H* |% r' M
    {  int i,j,k,n;
    + w6 p6 f; |. r   char a[50];0 h4 k  ?! g! l
       gets(a);
    * F+ |0 \* \( _7 Z9 C* ]   n=strlen(a);
    - i: v7 N1 k: F8 O+ [# L
    - q9 C3 Y: g2 H# l3 h0 H3 @   for(i=0;i<n-1; )6 t8 j& T& g" L0 d) z, Z
          if(a==a[i+1])
    9 J& L5 H/ g4 }5 D      {  for(j=i+1;a[j]==a[j+1];j++);
    ' V  f. T1 ?. z6 O; r9 o9 x+ X          printf("%d%c",j-i+1,a);
    ; X4 b: C% m, q0 J9 ^& P4 k! S- c          i=j+1;
    + ]6 F5 a' |3 q. @* U3 G      }1 K  [7 C6 ^* M
          else0 \+ p) E$ c* G
          {  if(a==1)
    3 W2 {) P) n/ P2 o            { printf("11");
    8 L, {0 T# q( S                 i++;0 Q- p2 \! L) Z
                }0 H: c$ q# t7 X6 k! l4 u( C- Z
              else
    $ |/ ^: }  y6 \& B; M/ n# D          {  for(j=i+1;a[j]!=a[j+1];j++);
    4 ^# ]. m% _+ z' Z5 w! k  }3 |: c# U              printf("1");
    7 `0 W3 {/ H# Q3 |% h              if(j==n+1)
    8 U6 H2 f  M6 Q: Y  |                  j--;# n) q/ ]9 W. G0 ~
                  for(k=i;k<j;k++)) m7 d9 V+ f7 H8 @3 `9 U
                      printf("%c",a[k]);
    ; W- P' ~8 n: s' s7 ]              printf("1");2 f5 F' Y4 G, C+ y+ r4 P( a, Y, r4 m
                  i=j;
    3 Z3 B, {, W3 K# E4 G! x$ h6 C% P3 \          }
    + e$ E5 {. {+ x6 N1 F      }
    ( m; i! R1 P8 ^- @/ }- m9 c7 U  i      if(n==1). F2 t" k! s  D1 t- T
              if(a[0]=='1')' Q& N( Y7 ?& m9 c# U5 ^. J  }
                  printf("11");
    0 C! }; `( O5 ^; J" x) f          else; D& m7 {" [- e' k
                  printf("1%c1",a[0]);
    5 E' P. K" P6 X: c- J   printf("\n");4 L2 p7 I& l2 H1 _3 M* q
    }    example2:#include<stdio.h>: R) X2 t' r1 o+ P
    #include<string.h>
    # w! F+ m) [2 a7 v" m3 v* Ivoid main()
    / n2 {0 C5 l; [; d0 C{  int i,j,k,n;7 Y1 [0 l+ c' K' ?
       char a[50];
    # A/ `: z/ G$ M" p3 H6 A' o* I   gets(a);
    " Q" G& K7 J2 |8 j   n=strlen(a);
    , X; v' F% J; z+ z* d, t! _* ~7 Y3 K* k7 G; I
       for(i=0;i<n-1; )5 l" M0 u3 t0 j) @  B
          if(a==a[i+1])
    9 X: r- K. Y6 A5 [0 c" q$ w      {  for(j=i+1;a[j]==a[j+1];j++);
    6 O2 c! }( L% y3 I- M( ^          printf("%d%c",j-i+1,a);
    / m2 Q) D, ~" v6 `  t          i=j+1;3 I8 C3 O1 `# m
          }
    ( r2 y  H- Y/ }5 l8 z  v$ ^      else$ G- Q! h, X8 v( I
          {  if(a==1)5 O9 q" b& A: e+ l% K$ z% u  i
                { printf("11");* I- j" f* z0 g' H" V: Z# D% l
                     i++;
    $ E  Z& G, Y" s7 e- R7 ?" a4 Y            }7 N2 z  \& D, F) j; S- {
              else. b3 l( m1 B9 f. H) Z  O5 y5 w
              {  for(j=i+1;a[j]!=a[j+1];j++);# r2 I" Q- I, K! m5 ?! o
                  printf("1");
    $ J4 \/ z4 Y# O. U* m, ]              if(j==n+1)
    - v! ^) u# r% c7 |0 G                  j--;' m- [9 L; u4 w
                  for(k=i;k<j;k++)
    " m/ s  M$ m% R" c+ E( I0 @9 G                  printf("%c",a[k]);  P: {2 Q5 e" \, s7 [
                  printf("1");- G6 I# s. u0 x3 _9 W! I8 R) F
                  i=j;- F$ z7 B1 u4 G6 H9 ~( H
              }8 h1 b( P1 P7 R& _- O
          }. Q8 c$ P, Z8 F, T, u# {
          if(n==1)
    3 Z' x8 \8 y( k7 _" T          if(a[0]=='1')
    - L% L; f. L6 I4 T              printf("11");. P+ o$ g! z% c3 N" ?1 S- d( Y
              else
    , x1 q. a/ e. E9 Z7 N: K7 h              printf("1%c1",a[0]);
    ' d/ a3 f9 e! P1 c, i. h1 f8 q1 ?" x, v   printf("\n");8 G7 m0 E6 \* l, d0 q8 L7 b, M
    }: D0 {) d4 F4 W0 b' i& b; I6 D! x
       example3:#include<stdio.h>  z( s* J  ?6 D4 h/ p( W
    #include<string.h>
    7 f% A; S5 }2 s# z' Evoid main()
    & I8 b2 S- U* k1 k2 W+ k{  int i,j,k,n;
    2 s* A& A! E7 B! k$ b* T5 e4 W   char a[50];
    : M, A  m  Y' z% v/ [   gets(a);" L2 ?+ u( Z. h! f' A
       n=strlen(a);% c! D7 g/ j9 X; z: {- \
    * ^; |0 Q0 u! ?  {' h& Y
       for(i=0;i<n-1; )( ?9 D7 }6 Z+ [$ D: Y$ K" `4 _0 U7 }
          if(a==a[i+1]): h  J- b2 ]- y5 ^
          {  for(j=i+1;a[j]==a[j+1];j++);2 {. p- p4 v* J
              printf("%d%c",j-i+1,a);
    1 U! [+ e5 U1 m" R9 J. V          i=j+1;! i6 s9 `. p- m+ x, p+ @
          }
    - k( D3 c* ], p2 c  L/ z& n      else
    # \/ x" i2 ?$ e( n9 D      {  if(a==1)
    9 N6 z5 N, E- [: l, L: K            { printf("11");
    " q# b; ~1 Z. _! ^                 i++;
    ; _9 @: Z3 S6 M% z$ N, c( ^            }3 n8 c/ L: d4 U9 _6 v" D# J
              else
    ' ]0 ]3 }$ h" j5 o0 i  _          {  for(j=i+1;a[j]!=a[j+1];j++);
    ' g- d+ S/ k. v              printf("1");1 I$ }( z' o+ K# k' _9 I$ p' s
                  if(j==n+1)
    5 y+ Q8 q+ I5 Y1 ?3 y# C                  j--;
    + G: o6 |  d; M              for(k=i;k<j;k++)
    ' y2 G3 M- Z$ p                  printf("%c",a[k]);" J& h# g4 N0 @1 v" w
                  printf("1");
    ' _4 ]  K! N( R& [# L% i              i=j;: }5 m  ?  g. T# v, P
              }2 Q: v) Z5 n9 x# U' y$ _
          }
    9 ?" d! q+ k9 I) D, |- T      if(n==1)3 l- t6 a, v. H
              if(a[0]=='1'); m8 V& L# q& @$ n: Z( s8 N
                  printf("11");
    5 Y+ E& z7 o$ Y8 t1 c: }          else+ I. w0 L0 N, {
                  printf("1%c1",a[0]);4 l; u8 b! |( Z" d
       printf("\n");( P' L" |' A( S/ [1 X9 v5 B! {
    }7 m/ \2 x0 _; I, S6 V8 E5 x7 l
          来源:编程爱好者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-8-1 04:42 , Processed in 0.698658 second(s), 74 queries .

    回顶部