QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6264|回复: 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
    1 u1 d* b/ X0 l  }# x2 ]7 D3 B  w  y/ r
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    . l( E* [; C8 h( u0 U. j* N7 Q" \7 R
    3 L0 b, u$ `; s* f0 `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. 7 J3 \! M: @& K* I9 O4 S# m
    - ^8 V: _, y0 s+ s) M3 v' J
    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 5 \6 ]' ]. s, r! J3 E/ t
    sequence, it is escaped with a 1, thus two 1 characters are output.
    / h9 p: i0 U- D/ h5 \$ h3 E) M, D( _7 F: E( M3 j* L
    Input . `8 D* X: ^  O4 M
    " C( m: \: `( b- @5 C3 ?
    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. 6 T8 |- S) K: `% O9 ^% t; o
    / ], |3 T* C0 Q0 O5 ?
    Output
    9 U" [# T3 T8 j. q1 M7 ]
    . z) E% ?# h" @9 T- n0 y  [8 REach 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. ) L  T5 {2 ^& a6 S4 n+ o9 f  M- y4 ]7 g

    5 k, l7 A% L1 Z) \+ ?+ `/ ^% v" ]输入样例

    , _4 W( I, A" T
    AAAAAABCCCC+ O5 S9 p9 p- ^: n
    123446 t+ S" y5 z2 u2 R

    1 z% H3 b+ X# v
    ; V* x1 Q# x; {: ?1 c* k' F
    输出样例

    2 i7 F" a3 M! |( Z! [+ K& i* u
    6A1B14C
    + M0 x1 U$ Y1 j' A  ]- S11123124! K% b) G/ u8 `+ }8 {

    & }5 N3 V/ i6 O7 j* z

    ; U2 a. r5 A& e; \3 P- XSource3 Z! w* @2 N6 ^% ^

    & }) ^- h$ k/ r0 S7 U( d- OUlm Local 20040 x; f* K* \, ?# s

    8 J/ ^$ X% |# ~- R" fexample1:) d- n2 Y) c- U' l0 U
    #include<stdio.h>2 b, W4 _) W3 E/ B) P4 q! ^+ q3 W6 A
    #include<string.h>
    0 @6 i: k# H4 ]& \- L# j0 m: Hvoid main()& G4 h, F3 Y8 y  b( s
    {  int i,j,k,n;
    7 S9 m/ N! O7 {, Y" d   char a[50];- U- H+ g- @9 j. u' b
       gets(a);* R4 ]8 |' c3 b  [
       n=strlen(a);
    % M5 ]4 v  c) b0 h, u6 }6 N# p6 u# N% r
       for(i=0;i<n-1; )3 B" c8 ^( s7 Z- |4 y, A5 p
          if(a==a[i+1])3 W  w3 D/ O, V
          {  for(j=i+1;a[j]==a[j+1];j++);
    " k& S  d. K3 b          printf("%d%c",j-i+1,a);8 _# d; M: a5 j$ C7 k
              i=j+1;9 s0 {/ F& D  r& z  B
          }
    / G* o( x3 W0 H" R6 n9 K4 J6 U- T      else
    8 p( A5 w; N  s9 R& Y7 Q6 Q( m      {  if(a==1)/ w2 C4 m) ~! g& x: _; K
                { printf("11");$ H3 a2 |4 v- z% }
                     i++;) e1 T- Z- _; o6 `3 G" t6 |
                }) e) }0 d' I$ }0 u) b# P
              else
    2 t* j! _& V' M+ f$ F          {  for(j=i+1;a[j]!=a[j+1];j++);$ p! p; T7 Y: i3 e
                  printf("1");* v+ B1 b1 P! j6 @+ A
                  if(j==n+1)6 W9 w& v; q4 [/ B$ D# B
                      j--;
    8 e  F0 M! K3 c5 P( o              for(k=i;k<j;k++)2 v5 L9 g5 j: }. T+ `( {+ T
                      printf("%c",a[k]);
    * d3 X+ H. ~! h3 i' N" b& Z              printf("1");
    - _' L7 k& O+ Y7 W4 ]              i=j;
    & \$ k" ^! X) y* W/ I* D          }
    : Z' m, q3 t3 k' v% E      }1 S/ Y" W) @) n( r2 R, O3 o6 r
          if(n==1)
    7 u0 o; o/ L9 j$ x. R' b$ m          if(a[0]=='1')
    ; M# K$ E) T2 q              printf("11");
    6 O1 S% V/ u' o3 c7 P7 t; c# V          else
    & I: c- t. h- W2 w# _7 y; X4 A# L0 c              printf("1%c1",a[0]);
    & l4 |9 w" v0 c! G; S& p   printf("\n");
    . }4 t5 p* v5 N6 w }& V, J: t$ f$ \! r/ H3 K2 [
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>) N- a. w5 k# m7 @! W$ S7 q- ?/ A5 x
    #include<string.h>' z, C/ |# D4 p% K( p
    void main()
    : t! l7 _% }1 S4 E' I0 m5 D{  int i,j,k,n;" G5 ]8 I" Q9 ~+ t  H) p7 `8 B5 z: b
       char a[50];: [' x" B" x% E; v1 j1 j
       gets(a);, V  N  T6 z2 p. X
       n=strlen(a);; C- r+ a' R8 Z
    + M& z* b2 p/ A7 w
       for(i=0;i<n-1; )
    6 ^1 f" X+ q' I7 r- A; y2 E      if(a==a[i+1])
      w8 V5 U! |% p# q* o, _3 Y      {  for(j=i+1;a[j]==a[j+1];j++);
    ' V/ W/ U/ i! p' e! t. N+ [) h1 f          printf("%d%c",j-i+1,a);6 `  E2 N# G# F  X: s! b
              i=j+1;
    9 q/ U1 ?9 m# ~! z/ {      }4 Q, _$ i2 H( j. {
          else  Q6 q/ z# A' b8 D: V6 g: {; V
          {  if(a==1)" s+ A1 O! G, O' r/ ^" g
                { printf("11");
    8 m- w- L! d. O: M& q# E# L- C                 i++;
    7 D% b, W2 c( R            }
    ) g, m6 _( z+ U; L3 i          else
    7 z% o" d1 i6 R' V7 ?* k, A# D          {  for(j=i+1;a[j]!=a[j+1];j++);9 B4 l1 `& y# B- X$ Q6 _
                  printf("1");
    " v! \1 C. n% u' g! g              if(j==n+1): o7 q# g' F7 J7 h! i, Z5 W3 l5 b8 y
                      j--;+ I. R4 g( o. p+ E
                  for(k=i;k<j;k++)- O6 _7 T2 Z( T  j% F
                      printf("%c",a[k]);2 w# s) q  N8 M/ J# g
                  printf("1");3 o2 L! g; u! ?, N* a
                  i=j;& p0 o1 b) W3 s
              }" X6 P% Y9 q$ r3 o: t
          }& r0 a" {, `4 j5 F0 [
          if(n==1)  s7 y! s& W  m
              if(a[0]=='1')9 n# g' Y6 T& W7 i! H3 C
                  printf("11");5 Q! R7 r& c3 t7 p: Y
              else0 [7 ^7 K+ K' \) h" [) k
                  printf("1%c1",a[0]);1 c' U# h6 @) E' y
       printf("\n");
    ! k; j- [. D6 v }    example2:#include<stdio.h>
    % Z' i$ \3 K' W' `#include<string.h>
      I; A2 j9 i5 b( Gvoid main()
    % R" o$ e$ p; J2 K. i- `' n7 H/ R: V{  int i,j,k,n;
    " _  \3 ], J- G' k7 _6 `) A   char a[50];. B: |/ g$ s# A9 g0 v1 r5 n+ T
       gets(a);$ r/ Y  \8 x7 X6 @! {
       n=strlen(a);: ~  O( \" m  c0 Z! Z

    ( X3 y/ _3 `- F7 ~   for(i=0;i<n-1; )1 D& B5 U/ @, r4 \% n7 q
          if(a==a[i+1])- V, ^' F! U' W3 K! D4 c* |$ F* {) k
          {  for(j=i+1;a[j]==a[j+1];j++);
    ; `- u9 S( `  Z7 ^# X          printf("%d%c",j-i+1,a);
    1 W, Y( _# O0 ]/ V          i=j+1;
    4 r3 C+ A) L, O& k      }# \6 L7 B- x, q) |
          else
    ' I  x$ l) R- l5 m9 c0 _$ U      {  if(a==1)- A" {* E( K' D: k$ U
                { printf("11");$ Z$ L# R* Q6 h" n0 ]& E1 |5 }  R
                     i++;
      q" ?' |: z- n: g            }+ L2 i. I8 N3 A) {
              else
    4 y5 N+ F1 h  T" @3 s7 B          {  for(j=i+1;a[j]!=a[j+1];j++);
    , d) _1 W. X5 d3 E# q* r1 a8 z- T              printf("1");
    / U: Q4 L2 s$ |! y; L7 p              if(j==n+1)4 W6 o( F! x. G9 V, H2 X
                      j--;1 a$ I# Z% J% j0 i
                  for(k=i;k<j;k++)9 {( `- d/ W' k+ W$ u7 a4 |/ {6 k% y
                      printf("%c",a[k]);
    + K2 A+ {' p% h# {              printf("1");
    7 h! K- f+ M" _              i=j;5 c3 F. Z1 e) P: P4 z7 Z; u- B  Y4 g
              }
    ' x" H# g! D( [! m. L8 i      }
    ; i# s* p" z8 }, {      if(n==1)% C" w" G: i, O; \4 Q& S
              if(a[0]=='1')
    . }% ]; p0 j$ E# I- J9 t6 k              printf("11");
    3 [* v: [' u; O% U          else8 E* `7 W9 [( K1 f* O
                  printf("1%c1",a[0]);% _# ~# y& @+ E4 b
       printf("\n");6 h% G% @5 E9 X* e
    }0 _) p. ~& g$ X
       example3:#include<stdio.h>
    $ H5 o& Q5 ]% N9 R7 ]% K#include<string.h>
    - n5 {+ K5 u: V& Z8 k5 xvoid main()
    1 b5 i4 k9 l  U/ I  Z: m) J1 Q{  int i,j,k,n;
    & J$ s# U, y& z  k4 R6 P% b6 i   char a[50];' Q! a3 d& O( C
       gets(a);
    " c" V7 e/ W! w& P2 D; m   n=strlen(a);
    " I# m( Y" K2 R! x1 H2 T7 g5 O7 Z
       for(i=0;i<n-1; ): \, K& D- s0 I8 g# P1 F
          if(a==a[i+1])+ _2 p0 c, e4 Z7 O# O
          {  for(j=i+1;a[j]==a[j+1];j++);- J' b- G: v; D0 g: F  U  N
              printf("%d%c",j-i+1,a);& ~! w  G" ?$ F4 f! F2 G( O5 ]
              i=j+1;0 |; j7 c6 p0 s! G
          }3 Z; C" |; n; a! Q! p
          else
    ( ]( Q  @1 C) R' z      {  if(a==1)
    % o! U4 X: }: V5 i5 o            { printf("11");
    : l& \: b1 J3 I6 ?' C                 i++;, a# X! n0 N9 r  c, q
                }
    . ~& Y/ r% t# w% Y. B' B5 u4 ~/ J          else0 [/ ^1 t: ]! a" {& k9 ^
              {  for(j=i+1;a[j]!=a[j+1];j++);2 P: Y! K% |, g( v: K
                  printf("1");
    : p' x9 l% r( u% _9 P- Q              if(j==n+1): i6 @- d/ ?, ~" [7 D! Z7 z2 d
                      j--;  K5 k% w, X& S7 h  U  {* X4 N
                  for(k=i;k<j;k++)
    1 c6 S, n, Y$ v3 f2 E' z, o                  printf("%c",a[k]);
    1 p6 A* E# q* [              printf("1");5 ?8 c: o5 ]& Q4 v- [6 g
                  i=j;
    ) ?( _4 q' c' p- @) [          }
    6 H1 b4 z+ {' G9 }1 i$ b      }# \+ j3 u- w/ z, W; c
          if(n==1). u+ g: k& K# M& S2 M
              if(a[0]=='1')
    ; r# ?" x: W( z: X" P) F- L3 |  Y              printf("11");
    / S+ `" q8 P: U  n          else
    ( z. _7 ^; q! @& R8 K              printf("1%c1",a[0]);
    ( T3 @$ q" q7 N   printf("\n");" B& y2 J2 c6 O( r0 S
    }5 q1 K( t) r; P/ H* H
          来源:编程爱好者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-11-3 11:00 , Processed in 0.731180 second(s), 82 queries .

    回顶部