QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6259|回复: 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
    5 y! k, v  A0 A- j' l7 R. h9 O) o6 H2 E. w
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 2 }. x- Z1 C& M- q
    6 H7 k: s4 b* G8 q  [, V+ e2 N+ G* p/ K
    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. 8 E1 n( f6 ]) h$ D* x0 i/ O6 T, t8 U& T

      @7 C5 a2 x0 e3 v* f' l4 DAny 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 & S0 r- T# N  ]3 W/ t0 D- d% W
    sequence, it is escaped with a 1, thus two 1 characters are output.
    6 ^% f! f- j" W4 g, D4 S. `/ z6 Y8 q9 V% b
    Input 8 }1 G& V+ M. W7 [1 T) C( s
    # f/ X1 ?1 q! M. R
    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.
    7 Z+ {  k" Z. R8 p* S/ {. f! Y4 W% `- K) R) f* }4 r" P5 Z$ n
    Output . q1 g8 a  R0 S4 X. W$ r! b
    5 X2 Y0 @! \% k. v7 s  @6 h) c1 p
    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. 7 ^( Z- z% C0 I) \4 y- Z

    * Y% f9 z0 a1 k0 I6 S) t) i输入样例


    $ S7 K& Z# u/ n1 ^9 e: X3 IAAAAAABCCCC0 R& s$ n) R* O5 {  C2 e* I% k* e# T
    12344# K; q$ `% m+ Q% \7 t2 d

    5 s, \9 V3 ]& y0 n

    $ B& A) x4 E2 |* K输出样例

    * M/ N% ^7 P  o6 q! e
    6A1B14C
    $ Y8 V% j& T+ V4 A% \. \- U11123124+ B, R! Z3 J. w


    ; @3 e( n7 X5 ?: k, V& K3 V& n% _, i( O9 {- y3 h
    Source
    : l6 N) t. E- D
    0 {/ t  g6 t0 c3 \Ulm Local 2004
    / Z3 B9 `. O/ g3 a  F9 ?4 W; R! D2 m& b  w% u& c
    example1:) ?9 x6 d4 B) a! }# i
    #include<stdio.h>: Q# I0 S7 }( u) r. I
    #include<string.h>/ Q3 r! B' q$ D$ O
    void main()* _9 M4 M4 |9 b/ H
    {  int i,j,k,n;! u8 s8 `' ]. h3 I$ A* G
       char a[50];9 i# }; Y1 k& s
       gets(a);. k9 {0 H" u7 P
       n=strlen(a);
    ! n  }5 f7 ]+ e  ?* j2 I# w: d& ~7 I/ E+ Y7 [
       for(i=0;i<n-1; )" I; v: Q  {8 r0 R; X2 I# L
          if(a==a[i+1])
    : y2 z- x% n) v2 T' L      {  for(j=i+1;a[j]==a[j+1];j++);/ T8 n" \: B9 ^: c: A: _% u. V( r
              printf("%d%c",j-i+1,a);
    + z7 H. o* k5 e8 }5 f( }          i=j+1;
    ( r- p* R( O; ^  u' W/ S      }
    , B+ {. }; j# v# Y3 [% \% O' O6 n      else$ \3 P8 _" C# }; J( N1 a# z
          {  if(a==1)& Q+ p8 A0 d* y& Q/ U/ u/ P
                { printf("11");% x  A6 r- Y# F0 G6 J. \
                     i++;: Z3 d8 Y7 `* E8 b
                }
    , J8 r, R; j0 s" k% H% V' h3 _& Q7 U          else, q+ M0 k% U' S4 S" p1 Y
              {  for(j=i+1;a[j]!=a[j+1];j++);# U3 f* o8 j7 ]. z: ^
                  printf("1");: G3 q0 T1 z7 Q- [
                  if(j==n+1)
    5 H5 x8 x, B; C$ W" @! H1 r1 ^9 o$ A6 E9 m                  j--;
    $ }% G" s# U+ _+ Z- Q4 A              for(k=i;k<j;k++)/ F% F' g% A$ ~1 ?0 N/ W/ u
                      printf("%c",a[k]);7 C, u& E2 I; y& i. M
                  printf("1");
    ; {- A9 \) B/ U, v              i=j;/ R' p+ B$ {7 L5 V
              }& R+ k) f3 e* `! A3 j, J- y
          }' {5 ^, O" o+ @" F* z& k
          if(n==1)6 P  D6 C0 p1 e, U& O
              if(a[0]=='1')) h1 [$ V! {/ d  {  z6 O
                  printf("11");1 |: G% @! [8 L' b# K- |$ K
              else* \! ~$ [2 r  V/ M' k
                  printf("1%c1",a[0]);
    ( [) N" u% t  s. |+ x- o   printf("\n");5 w3 N) b' r3 I. r# D: z- c2 b
    }
    & k8 J; n/ S4 y评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>6 ~2 I+ }1 m  M8 g$ Z
    #include<string.h>
    ; m/ a) _1 C; q( M& D+ t0 Vvoid main()
    : W$ W: r* _4 V5 V# B{  int i,j,k,n;
    & `# s5 c, H9 P/ O- F/ D( G) e   char a[50];: W# d6 `4 A; L0 i/ O! U" b% w
       gets(a);
    # p! P! |. J* C- i   n=strlen(a);
    ( }4 u! ]4 ]6 w! T9 U& G8 d" j6 F" h/ |+ K4 ^2 ^- L
       for(i=0;i<n-1; )
    . \3 b3 r' ]3 \. H3 P0 G      if(a==a[i+1])4 [$ h$ J. U: w8 z- [
          {  for(j=i+1;a[j]==a[j+1];j++);$ v/ ]9 A0 M+ @% r0 p$ x
              printf("%d%c",j-i+1,a);
    3 R! r8 n3 W7 ?: z* p9 n0 g          i=j+1;
    , n+ g1 i/ J% D+ T      }
    : d; b# E+ i- Z* I1 t      else
    ! H$ X& c1 I9 c5 b$ d% S/ \+ C. Z' F      {  if(a==1)
    7 F4 L4 k/ u: H            { printf("11");
    0 I* y2 ~0 W" q6 }" z                 i++;
    ; v( D2 p# n* A: T7 R            }4 F' X" Z$ D" V9 b
              else
    ( s) g. r! B4 }/ ~' U# M8 O          {  for(j=i+1;a[j]!=a[j+1];j++);" N9 H  L( K- L2 V+ B2 q) j
                  printf("1");& ?6 p; a9 W' R6 j, T( ?* c, T  C8 T
                  if(j==n+1)
    1 q& S' Z  m3 g( H1 K                  j--;- D/ {. J' I: Q
                  for(k=i;k<j;k++)* U: \7 l( c1 Q2 F! S" c5 {& H1 K# B
                      printf("%c",a[k]);
    + t3 R( p  d$ ]4 C" T( ^! P6 `              printf("1");; I: m. T9 N* C/ t
                  i=j;9 |$ G- h/ p8 h" y: n; I
              }( K+ o& V9 Q! _4 H9 M' e
          }0 G1 z0 }4 t- g) h$ ]. ~
          if(n==1)
    9 x5 M  d: ~! U1 r; V3 G          if(a[0]=='1')
    ! x* I. z6 e9 Z0 T  w              printf("11");
    # l: A4 O; n1 w; {% W/ ]# M4 w          else7 [* E: T  m/ F1 A3 ]3 `; Y2 b
                  printf("1%c1",a[0]);
    " p1 x+ w. U( l; A' W* b: [   printf("\n");
    8 ]0 c  m& o) Z6 E }    example2:#include<stdio.h>
    ; ~9 T4 P* t6 i' l#include<string.h>
    # ~7 s2 s5 \$ [- Yvoid main()
    # }8 T$ x8 q1 |" Y8 z{  int i,j,k,n;% x% A& Y2 O- H; ?
       char a[50];
    + u, E) B$ L2 O/ \0 {: Y5 Q   gets(a);7 f& j9 ?* H! |0 i' D) S$ Z2 B
       n=strlen(a);+ d% |5 j+ h" S7 U
    5 V) `* B. a; `1 w0 ?  `# ^
       for(i=0;i<n-1; )
    4 B! [" L  b3 v6 O  q      if(a==a[i+1])
    # f' k8 S! V1 Z1 {/ G4 Y4 o6 z      {  for(j=i+1;a[j]==a[j+1];j++);
    . y1 s! i1 r0 K2 G) C- G          printf("%d%c",j-i+1,a);& K  N- ?: }0 D  \, A3 n3 u+ z/ u
              i=j+1;
    , d" q, W. r/ p7 V) ?      }+ D; K8 w! o! z5 ~% D
          else) ]3 H; N7 F! s6 o! K
          {  if(a==1)! R/ g6 v% n2 H6 X/ i1 j
                { printf("11");
    ( z* a& Y7 S* e  z5 d8 m( J                 i++;
    ) N3 v$ w+ P, ~; Q            }: ~+ v* t1 w; R7 u
              else+ ~$ T# K5 b% ?5 [
              {  for(j=i+1;a[j]!=a[j+1];j++);
    . k5 n2 c; R8 B: W              printf("1");
    & q4 y9 I$ R5 ^" p/ R% e' s4 r/ [              if(j==n+1)
    # V; M+ M1 d5 y- r. }                  j--;
    9 q0 U' \( r& H3 ^1 F, N              for(k=i;k<j;k++)3 \( m5 S: |: E) \
                      printf("%c",a[k]);
    , f5 d6 x1 e! C% U3 _4 B) R              printf("1");9 Z0 P6 y) c: r: P! @
                  i=j;
    ; d' x2 {. D5 t6 H( t0 v          }
    5 @) ~' ?% {0 D      }0 w9 A9 b! d' I) K5 |( i
          if(n==1)
    2 L& ~' j! U; o  j! Z7 H8 P1 v- V- v* l          if(a[0]=='1')
    * q3 Z! u  Z" ?' B9 J6 I8 X- s              printf("11");: c' ~2 G& ~  ]) ?% {
              else1 l& _' E4 |- F4 Z
                  printf("1%c1",a[0]);8 R/ t, Z3 X4 I2 z0 U1 s
       printf("\n");
    % K& j1 x( v9 S( e }
    8 K7 [% S' R: v- `4 H  u   example3:#include<stdio.h>
    + B$ k  y( K8 B5 d5 d#include<string.h>8 G8 K( r3 k# t
    void main()4 w6 n9 f" c( _- \
    {  int i,j,k,n;
    $ X: v- D# b* u  x* H% c" D- j   char a[50];* c9 B8 @$ l% |  y9 `4 ~6 s
       gets(a);7 [% f4 f- ~; ~5 g" W, U
       n=strlen(a);
    1 ?- d* M! }3 k+ Z5 ^2 u
    1 L0 o! @6 |+ b9 k. R   for(i=0;i<n-1; )4 h" R4 x9 N7 B! B: z) V2 o0 V
          if(a==a[i+1])
    + y/ O3 F( `& p9 L8 }! @6 W4 ?      {  for(j=i+1;a[j]==a[j+1];j++);
    7 L9 l; A: C/ T/ B# T          printf("%d%c",j-i+1,a);
    2 |5 u: {8 D) k2 z: y          i=j+1;
      f$ Y/ a- H  ^" J      }
    3 H) L* o$ e# E      else
    . o. a$ a) d6 M' [7 j, I; @' D      {  if(a==1)
    & w- u% `# L2 T, n& f8 O( [' S2 H2 C$ R            { printf("11");! p! Q" D3 N& Q! z/ h% K
                     i++;
    6 x( d! q1 `. h+ a* M$ N            }8 j$ x1 k# G5 T' G" F$ r
              else
    , O- ~1 i( C5 A" w2 W          {  for(j=i+1;a[j]!=a[j+1];j++);8 U7 m0 Z+ h5 z+ G, l
                  printf("1");
    ( Y+ F5 [) K5 {6 @& e& s              if(j==n+1)
    0 K) W- T6 M$ I2 y- v9 r                  j--;
    & }. s2 J' C) m) q' h+ G( y              for(k=i;k<j;k++)- A/ q6 {" A* D) q( l4 A
                      printf("%c",a[k]);# u' Y3 V0 K4 v" c- w( a* w
                  printf("1");9 q- Y  ?. T4 A& {% A$ G
                  i=j;
    ! }9 {: C2 f' Q; @          }
    . i. e3 r3 E% X0 x' X; K      }+ G4 R& y& _  _2 c5 T0 ~
          if(n==1)4 G# Z" O, E& v; ?3 y0 J( R/ Y
              if(a[0]=='1')% n! Y( ^. ^7 f6 N/ D0 N& K6 A
                  printf("11");5 v' h0 w+ M( N
              else, t  `& O& l! f7 I3 a! m8 g. d: G
                  printf("1%c1",a[0]);
    % ?' V# i+ |" Y* X# T8 D. j3 U   printf("\n");5 I6 }& H1 i8 d% h& ^) ?7 d" e
    }
    0 ~; ]$ x0 ]/ Q1 \8 k: }; x* a      来源:编程爱好者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, 2025-10-31 09:07 , Processed in 1.249824 second(s), 81 queries .

    回顶部