QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6473|回复: 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优秀论文解析专题

    跳转到指定楼层
    #
    发表于 2010-5-6 18:38 |只看该作者 |正序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    Run Length EncodingDescription
      J+ O( `" p8 a3 Y" n' [6 L2 E* ~0 S/ Z) s
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 4 q8 v& [. E7 G1 ]) ~( B  l
    3 x) U# C7 A% 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. 1 @, Y- `3 F7 G* ]* ^! x

    ; U' P# A( B6 n5 M) u$ CAny 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 / R% Q! ^% a; {8 U) T* e
    sequence, it is escaped with a 1, thus two 1 characters are output. ' ^, {! ?5 _3 {3 T% s: n; }8 u

    : W/ ~+ J) }) Y. ]* mInput . E. I8 |- I. P; ^% @$ x

    / }4 R8 q0 S5 _1 M# 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.
    5 ?4 s/ _5 z$ T0 g, Q# G  I
    ' r2 M7 M" P; COutput 2 I5 ?) ?" G( ~1 a2 L5 `2 F
    1 Z2 T2 h, F: t$ f; y; w
    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. 4 ~; A% A$ b3 I) W6 h

    4 V4 [2 j& O8 U输入样例

    4 ^* Z8 |. u5 u3 X$ m
    AAAAAABCCCC
    $ m; _6 P- E! c12344
    4 Y7 X* }% F4 z6 I' G5 o


    ! |; ?$ E2 ~+ P4 F# n
    8 e! p5 [9 v2 m" X, C, M$ f8 C  P+ n输出样例


    * e6 o9 e7 C1 w7 E' f. w/ K" h" O6A1B14C
    5 k. ~7 M' o0 u* y$ }9 Z111231244 r1 `  X7 ]* w: p+ \: n


    % k$ X7 C) a: }0 J5 _; {  y5 A7 S
    Source
    6 d/ o, U5 E7 K% z* l: k  i; y3 J
    Ulm Local 20041 @; X; n9 i  D7 G) u6 u8 I( F

    3 Z7 o2 G. D( \8 ~$ H# ?example1:, L. Z% ]) ^4 H9 Q- p/ u5 m
    #include<stdio.h>
    / k/ f/ u' W' t#include<string.h>4 Q6 G# X% j( r/ l- ?- @5 H( Z
    void main()0 d' B& \# }$ f
    {  int i,j,k,n;
    ' }5 H/ @; I, w4 a, {  Q! @' S   char a[50];
    ; D) C$ h% W' [- r" T; k8 C   gets(a);. I. f! V, C, b6 {) ~9 H- M' R# {! o& ~
       n=strlen(a);
    . u- [( T' L# |  f& ?+ d; C5 i. Y1 T" N5 r  A& c
       for(i=0;i<n-1; )  s! p3 ]1 C( P5 `' g; W# l
          if(a==a[i+1])* F* Q: R3 j4 F! H  Y5 z
          {  for(j=i+1;a[j]==a[j+1];j++);
    5 v% Q+ Z: `: b/ q          printf("%d%c",j-i+1,a);
    5 q' l2 b" S0 A' J: ]          i=j+1;
    ) D( \" y. {' p+ i      }
    , p" V9 \4 u4 p; m      else
    : [" x4 f4 T" Z5 Q8 o      {  if(a==1)# v% L# a1 u+ X. @
                { printf("11");
    $ [9 u2 ]/ j, |: Q                 i++;8 ?5 U. ~. v! t2 E0 ?3 p* A
                }$ @* E7 z6 l3 R( K" F8 y
              else' Z' R: e7 r2 k- S
              {  for(j=i+1;a[j]!=a[j+1];j++);6 ^( U, m/ n/ O1 J; v4 B- A
                  printf("1");
    ) o4 W7 j% c6 H* L1 s9 @+ ?              if(j==n+1)
    8 t# r) L0 b0 M0 A                  j--;
    5 N% N" s6 Y" @! [/ k7 r+ c              for(k=i;k<j;k++): H5 e, _5 `8 Z+ k- u
                      printf("%c",a[k]);6 Y) [9 f, e6 s8 t& A$ t4 ~3 T
                  printf("1");$ p( e& ]0 N5 p$ p- h9 @; T7 R
                  i=j;2 q! ?, m( Y7 d, r  _) X
              }1 A3 U, S1 @( l5 T5 N$ t: N- c
          }: t2 r& |9 X1 R% h7 H" B0 M
          if(n==1)
    * c" s$ v% V: d          if(a[0]=='1')
    $ T1 p6 @& s0 B& I% ~$ e% I, N              printf("11");
    0 T/ S, M" V( I1 ^          else* [: w' c7 S8 e, ?1 j$ U; H
                  printf("1%c1",a[0]);" V5 @& p) E0 i) v: a9 R, o1 ^, q
       printf("\n");
    + b) ^2 |1 d6 n' \0 q' z9 ^ }  A: x, I! @" G' y& ?4 ^
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>7 ?3 ^1 I5 ~- i: _
    #include<string.h>, a, K/ D/ @* s# n# O  R, ]0 c$ i
    void main()
    / N+ d, V( ~8 L! V{  int i,j,k,n;: Y' Q  \) ~; g% {+ S8 f; U/ y
       char a[50];, `/ A6 w8 y5 W  ^8 w) a$ L: V
       gets(a);
    ; L$ S4 m1 n: j7 e* S1 N6 L6 Z   n=strlen(a);
    ! p' \- q, R+ p# E( j, r3 y1 s( B2 A+ S4 o1 W# M
       for(i=0;i<n-1; )0 n1 R- d3 B* k# B: N- i8 p: I
          if(a==a[i+1])4 \' q, m" l) e/ a" C. d
          {  for(j=i+1;a[j]==a[j+1];j++);
    " O% U8 a  @: }& \! {          printf("%d%c",j-i+1,a);: O( P+ e" a# ~2 J* O
              i=j+1;
    2 F% O# e& a# Y0 \3 n: _      }& \2 L( F( }- {2 c% C) X* g; A) J! u
          else: E- v3 D' m, m+ L
          {  if(a==1)$ ^) {; G1 }, Q& S9 u' v/ R1 ~% e
                { printf("11");5 l. w% A0 u; A/ T5 g1 w) x; l
                     i++;
    0 ?% ]/ z8 }2 _5 t            }( b3 n2 _3 k4 `- m
              else  q9 ^$ G4 s; j4 A8 d
              {  for(j=i+1;a[j]!=a[j+1];j++);
    5 R) ^% @9 o" M$ v9 i: y" s              printf("1");+ X9 W8 I( `( D: u% D; V
                  if(j==n+1)' @4 M5 P% _9 R" v: \  ^' k2 M1 W
                      j--;) p! D* W$ a' w& t' Z' ^6 }
                  for(k=i;k<j;k++)
    & g6 D5 [  R  T9 }) ~5 d                  printf("%c",a[k]);
    ! d4 \+ B2 m, I/ f              printf("1");% G" z4 ~( A9 i. d
                  i=j;4 a7 E$ P6 N$ r8 Z2 O0 R8 M" v) W
              }7 W' J1 l0 W6 {6 L3 e
          }
    % x# a: F3 f' i0 U4 C4 r      if(n==1)2 z/ V! T7 N. F9 z( g" d2 d
              if(a[0]=='1')
    3 a  V* k3 S3 Q& Q              printf("11");
    & _) G  Y: h1 A- r+ T# x  S          else
    ; q% h  X9 t2 ^8 w& p) R! h7 C/ t              printf("1%c1",a[0]);
    ( R' t' h2 W* [$ R0 ?9 z6 P  T3 N; F   printf("\n");% e* \# ~$ a9 x. y
    }    example2:#include<stdio.h>
    ( Z& B4 R) x3 m#include<string.h>2 x6 x  p4 m* @5 x' ]& H
    void main()
    ' {) b+ ]6 X* k1 C' U6 G{  int i,j,k,n;+ q% `7 C6 f% W- @/ r
       char a[50];2 l* O5 [- p, ?
       gets(a);- {) G% _  G- E" ?/ m; `0 d
       n=strlen(a);
    " j4 H" b8 Y5 U' \  _  p) ~; n, m9 E9 L) ?* t/ Z5 m3 }' @
       for(i=0;i<n-1; )
    8 m" F6 U# W% u2 l0 ]( A. o      if(a==a[i+1])
      t: T, E6 W/ l; v* c      {  for(j=i+1;a[j]==a[j+1];j++);
    . S4 m) J5 s' s$ W% ?, K. Y; C          printf("%d%c",j-i+1,a);. n: @! C& i2 O( X5 O2 {) e
              i=j+1;
    ! V/ l. I7 Z2 v' s3 @      }
    1 j% q% ]6 R  \      else
    6 u4 }/ p0 y7 e8 ]8 x" o      {  if(a==1)3 u* P! O% E! M4 `. w2 C* c+ v
                { printf("11");  b7 J& i9 w* L$ Z6 C- D
                     i++;
    / ^$ K! R* i/ l' r' I* s# P2 O            }) |( w& U9 Y9 R" q$ ?/ _3 O
              else
    7 p9 k8 k. F  M/ a" \          {  for(j=i+1;a[j]!=a[j+1];j++);
    ( T! J  h$ n9 e1 d0 F              printf("1");2 m6 }2 f" ], t% `. T2 D! t4 \
                  if(j==n+1)1 H9 p3 f7 s. i6 _
                      j--;
    2 O* z5 ?. z; M( h2 b              for(k=i;k<j;k++)
    % l+ R* i6 a' E+ x5 z0 R                  printf("%c",a[k]);
    3 H5 w3 e$ Z7 O1 g              printf("1");
    ! u7 }" L; F: c8 _  S3 G( Q              i=j;; N( M' ^7 G5 E9 R, @/ w$ D/ C
              }. ^/ m, b) @) m: u* L; _
          }6 ]# G4 l; A" Z7 L( C; q
          if(n==1)
    & o0 n7 v- ?( g; e5 u          if(a[0]=='1')
    $ f# J' B- f- [" j4 A2 N* H" u              printf("11");
    0 J9 ?3 S: \1 u# v          else
    % j9 W) A! D2 M              printf("1%c1",a[0]);
    - ?2 t+ r" _4 ^8 G9 P" N$ j   printf("\n");
    $ R: U6 {# r1 P" U& r }
    % G8 b4 g0 T8 f0 t9 U( `. c   example3:#include<stdio.h>
    # j& g( l; Z" s( B1 u# W/ D#include<string.h>
    # k: X- g$ Y( Avoid main()
    % S5 ]1 W. d4 t{  int i,j,k,n;4 k0 A% H, d0 ^- q
       char a[50];; i% }' _% e4 y, L) C
       gets(a);
    & x( k* m' i* x( Z   n=strlen(a);
    * E! P/ C  \4 m$ t7 u4 l0 h2 L) g8 e# M% T7 E; }2 f* {
       for(i=0;i<n-1; )% j$ v, U$ m6 C( N) C2 N
          if(a==a[i+1]): x3 Z$ m5 X+ W5 k
          {  for(j=i+1;a[j]==a[j+1];j++);; I1 A/ ^9 |4 d( w7 J3 ~
              printf("%d%c",j-i+1,a);- v! ?  C* ]- [1 {: I' o1 n# @
              i=j+1;6 x2 c' c' X, ^8 l
          }
      P* t( H2 {' a* J: ]      else/ Z% D/ U/ N* ?% N
          {  if(a==1)
    # g) ^0 T7 Y) O, x. C            { printf("11");
    5 T2 I+ y( r5 q, }; S1 r. G                 i++;. y3 d4 c" A; p% n, u* I$ d$ }
                }
    1 T$ k6 T' G/ a, z1 ~  @          else
    $ M& O! q/ M. [% z( l- l3 a          {  for(j=i+1;a[j]!=a[j+1];j++);
    5 D4 ?6 M+ E$ m  S! `( [              printf("1");
    " }/ T% S2 P+ ~3 a- ]/ E" a* U              if(j==n+1)
    ) j+ p6 A' M- U) `5 w                  j--;
    ' j& J* J. p+ K$ C- I              for(k=i;k<j;k++)
    1 h: ]8 {( D& x% X: U                  printf("%c",a[k]);, ^7 O8 Z* Y( u) _! V% s
                  printf("1");
    ; x  L/ |% \$ G7 x6 M) H              i=j;3 J& X1 I! u0 U# d( ]" u/ ]
              }
    ! m' B# J# r5 }$ N6 f      }' y' _, k  G3 S, l
          if(n==1)
    % n$ J1 n$ j6 @0 @* i% E          if(a[0]=='1')
    3 S5 K! F* Q8 h" h              printf("11");# i* f: f9 E3 p  Z! a
              else! @% z) A6 [6 I  T& Z4 h
                  printf("1%c1",a[0]);
    + G/ O# k2 s; M7 f! ]. B   printf("\n");( c$ C3 Q' R7 B( v8 q% ]
    }& k) p* O6 z* m
          来源:编程爱好者acm题库
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    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, 2026-4-21 20:51 , Processed in 0.909904 second(s), 74 queries .

    回顶部