QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6262|回复: 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
    0 t. `6 e# H  i, b4 T; n/ o
    8 z; S$ M) e+ f1 o- E6 \Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. $ P+ y3 ]8 e6 _  p% v4 c
    ( S9 M# q  k3 k: z0 D
    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. " `& l$ C0 M$ b

    5 [0 T* ?/ \0 u  T% C8 oAny 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 d5 e3 t" J0 }( O2 \
    sequence, it is escaped with a 1, thus two 1 characters are output. 1 N3 |) l+ q" T& c: [" K. g
    5 o- N+ \, {- `) N
    Input 4 C  B' v6 {- t% m

      X; U! P8 X. `: A$ f: b0 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.
    ) P0 {! L  u( G( o1 p, M1 \$ F8 Y* y
    Output " @3 m7 V% g9 N

    # Y' P, M2 Q6 ]+ `* I- i8 nEach 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 G0 |# u. W! f; h; z/ T/ N6 Z1 w5 |9 ]& `5 F  j; t
    输入样例


    ) M  U5 N0 E0 Z) ~6 o, G3 m5 PAAAAAABCCCC3 c2 l8 ^8 Q9 E  o
    12344
    1 l$ {/ h6 j2 l6 o  t

    5 N2 I# S# r' x1 F# \

    6 r# ]/ f. X0 v1 x1 v输出样例


    % j5 l/ C$ @8 v# ^' l6A1B14C. \" x( ~; ]  l2 [: @
    11123124
    2 F2 h: B" a! _- V

    " ^6 M6 \/ H9 z' o; D! h
    / c% E; N2 N# m3 [) d+ ?9 Y% @# I
    Source$ K' d+ O" ]+ m& E& n; c1 T
    ) D- `  W! a& E0 e; W* \
    Ulm Local 20048 Q! s. ]- }) X* v" x7 W, e. E
    8 T5 L& V& D! V8 `# ]8 T5 F
    example1:
    5 z6 N; ^  k2 _  T$ j5 E0 w! |2 h: ?#include<stdio.h>! ^+ [4 ^! n+ M, c
    #include<string.h>
    / P! H" O; ?) a, yvoid main()( G: v. T( O8 A8 J6 d: S
    {  int i,j,k,n;3 q- ~3 ]+ N. w) R) q3 m
       char a[50];2 ]9 R% I' E- i% V. k) E+ W1 a8 W0 j: t4 M
       gets(a);
    , @# x8 W8 i- D9 Y0 J; N0 n   n=strlen(a);
    # B! J' H% ]( ?  F7 t( d; Y
    ) C/ v0 a/ o/ ]3 ?   for(i=0;i<n-1; )0 ^- W1 }1 a* q( A/ L" T! S
          if(a==a[i+1])  h& U# O- M6 I3 {: l; B9 |
          {  for(j=i+1;a[j]==a[j+1];j++);2 g* c( T: J% g+ D* Z5 t
              printf("%d%c",j-i+1,a);
    , c% E/ d! g! j  ]3 y          i=j+1;
    ; p. g- k) }7 s3 z3 c0 _      }. o9 l/ O1 ]- E
          else
    ( c5 K* ]% K/ V8 T      {  if(a==1)9 }# f: P. |7 B) j, b# P4 ?
                { printf("11");$ u3 B7 ^$ D6 S9 p' ?
                     i++;  {- C7 d/ m  z# M+ k
                }
    , F8 Y- K/ U# \8 @, Y          else2 P* P3 S: N5 u6 E' R% i
              {  for(j=i+1;a[j]!=a[j+1];j++);
    ; V$ }5 n! v8 \, L5 t* p              printf("1");3 O. y9 U9 t- R0 T
                  if(j==n+1)
    # O0 g! M2 h, @; o5 B6 }                  j--;
    5 v5 x# O' v7 P" G" i4 l* c              for(k=i;k<j;k++)
    0 r( r) j! P7 @                  printf("%c",a[k]);- H; n2 ?+ Q1 e3 f: }  k
                  printf("1");
    3 _% }; G7 s4 ^) ~3 e6 u5 {# F              i=j;# }  D: `" B' Q/ Y6 ^  z: |8 {9 p2 y
              }
    - i/ v" E; z7 D, P% \      }
    & Q( f- g7 @9 m) N. r      if(n==1)" K3 a% ?' c4 N! K" ?0 m
              if(a[0]=='1')% s% d! k; c$ U% U& Q* b
                  printf("11");
    - D4 w  @( w0 ]! E6 M          else
    0 p8 k  G: e# b( ]. {* w              printf("1%c1",a[0]);
    * `4 g- o) j: f0 f   printf("\n");* n3 e5 o/ c; }2 I
    }
    $ j, R3 [, f. _/ n  \9 H评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    2 z! l" X; Z7 E1 u9 t#include<string.h>0 h5 N6 J% A# }4 H* G& d
    void main()% h) b" N( H1 Z- G+ c
    {  int i,j,k,n;
    - [9 x0 t+ g3 E' a% l* i2 L   char a[50];
    $ a7 d; D. V: E4 ]   gets(a);8 ^% Q; x. S" C# @- h
       n=strlen(a);
    " n) }, A8 p0 @( _# P. I
    3 _1 V: ?1 [: _& T   for(i=0;i<n-1; )$ L' M6 P8 u: h) r
          if(a==a[i+1])0 Q, ]8 H) V, f/ d7 R: o) y5 h5 [
          {  for(j=i+1;a[j]==a[j+1];j++);) p8 I5 ]: j0 M6 w
              printf("%d%c",j-i+1,a);8 M6 }  \; |2 L- I' }! z
              i=j+1;, q6 L; I0 |/ B# ]6 t+ N( w: \
          }7 o2 S; G4 Q. J. T% R0 a
          else
    ) `5 `* V7 v# S) r/ O      {  if(a==1)
      |. |6 f/ [2 U            { printf("11");5 c3 y% _" P. M& d) ~& A& f) k5 a
                     i++;
    $ \6 n+ f. I# z; |# P            }8 J! E# F( E" [. J4 h( l7 S: q( L
              else! C% ^# `8 h- Z" K) k% d) f
              {  for(j=i+1;a[j]!=a[j+1];j++);) R; @3 i7 S: {' ]4 V& X, k
                  printf("1");
    - L6 p) c  m0 K! F  z              if(j==n+1)
    ! d2 g3 |# l& y                  j--;* [- U. {) H* h- X
                  for(k=i;k<j;k++)1 ^6 _3 x: E2 i5 m2 Y
                      printf("%c",a[k]);
    ! }. A7 `+ ^) p              printf("1");
    ! `" Y9 {* X8 Z) R              i=j;# ]9 M7 B# G8 c: w
              }
    % X* ?+ x9 j5 f0 A      }( f* j" j$ b" O, B- H; Z
          if(n==1)1 G8 }4 H- _7 |
              if(a[0]=='1')8 p: G  Z9 B( k7 c
                  printf("11");; a$ f1 h; {" b
              else6 l3 P) b1 r- e) d$ g
                  printf("1%c1",a[0]);
    0 o/ a9 t# t( |/ K   printf("\n");5 l3 s+ x# X' A: w1 e
    }    example2:#include<stdio.h>2 U0 D* y- P' \& E% s! h
    #include<string.h>
    ! h/ N8 U: j) E, L7 f5 Q7 P# gvoid main()' t. t1 O2 ^* \9 w( d* H
    {  int i,j,k,n;
    2 n9 o5 X- |+ [) w+ X   char a[50];$ f8 I3 \2 |/ F& s$ c; b( f& l
       gets(a);
    6 I' Q! G) Q. Y   n=strlen(a);0 n5 w9 s2 l* g/ b

    8 `# A) m) h0 m8 B   for(i=0;i<n-1; )+ ~) ?1 @. V. \9 B" ^5 Z2 z$ F
          if(a==a[i+1]). S5 O: t  l6 l( g' |5 l  T3 p
          {  for(j=i+1;a[j]==a[j+1];j++);; j9 Z4 k" S2 n: ~% X# Y3 {1 y" g
              printf("%d%c",j-i+1,a);
    3 o5 L; M( j$ h; O! F8 g& {          i=j+1;
    ( y1 A: A, v: y" z- N      }
    4 l/ ]9 [  ~' L0 ^# g. o, L* d      else, T+ e) ?: h* L# q8 y
          {  if(a==1)+ C% Z$ ~1 V0 J/ \1 j
                { printf("11");
    - H! h& i! T! J" M; p, L5 o                 i++;
    # M" f7 b4 t& z0 u" y" j' v0 K            }8 [; V" O0 i  s: B9 `
              else8 H. O3 J$ [4 k' \7 O5 t8 c; x7 a
              {  for(j=i+1;a[j]!=a[j+1];j++);
    2 o/ l3 K* D, d3 Z# a: h) K. }              printf("1");
    : P+ K! x  A; Y3 e. }& V              if(j==n+1)
    " i7 C7 q7 e1 @1 w, L                  j--;
    & s( P$ [* \$ z* T3 [9 u% l              for(k=i;k<j;k++)
    * i( h7 L+ ~% I- E% B$ A                  printf("%c",a[k]);
    / p4 A* O5 N: Z/ K, O* k              printf("1");
    . n5 L! @7 `1 u% z              i=j;* y4 f( L0 ~$ ?$ Q. \! H$ ?. H, c) r% W4 ?
              }
    / R: [, d3 k  Z: W& j      }* Z8 ]6 ~) j$ Q$ f( E3 e0 L, ~
          if(n==1)
    ( g/ `" |: p! D% b$ B2 q0 j          if(a[0]=='1')% }. L7 W9 {( O' B6 O
                  printf("11");% f! [2 N2 p0 o0 T( v5 `5 v7 c# e
              else
    6 I: E6 T7 [: T+ e5 `              printf("1%c1",a[0]);
    & P! T+ [' J0 q+ J" a1 L2 o6 N   printf("\n");  A. x2 ?4 g2 t; A
    }
    + |" p3 M1 N8 P8 ?( V   example3:#include<stdio.h>
    " w" B2 a% o( i& Z7 C#include<string.h>
    6 t: W. W; U( o5 G9 e# y& w, V. vvoid main()
    $ q% d2 S3 n/ l1 b' S{  int i,j,k,n;
    # ^7 \0 a7 V' g. ?   char a[50];, {4 n2 u" E" S1 |$ u6 b& x& r( s2 Y
       gets(a);: J5 R( G/ Q2 K6 r
       n=strlen(a);: j6 E2 w" c; |4 E& r
    5 x6 E  S/ j- m* m: }2 X; T
       for(i=0;i<n-1; )
    " x, p$ S0 O4 E9 Z4 N; [      if(a==a[i+1])
    1 V9 I- o' O9 N7 G/ a      {  for(j=i+1;a[j]==a[j+1];j++);
    - Q. Q6 V2 R1 I" p  A: i/ E7 G          printf("%d%c",j-i+1,a);9 Q# i+ H/ Y( w, O
              i=j+1;
    ! V9 Q9 d# ]! n& @( E3 i* ~* p      }
    " q+ f2 `( c$ a  ?) ]      else
    2 t" q( B0 C- L$ \, {( x9 n, q6 d      {  if(a==1)
    - t4 O: p8 R: P& y4 N            { printf("11");, O% }! {5 o/ g
                     i++;1 i$ E% c/ G4 R
                }% ^% e5 _" J- o
              else3 h' M3 m  o$ V) B8 Z* ~. U
              {  for(j=i+1;a[j]!=a[j+1];j++);: c( B' g8 t* M
                  printf("1");
    ! e9 r' M* t! O* ~) \- U5 s              if(j==n+1)
    - r, S+ T8 T+ V8 C, i. w                  j--;' g! Z/ r1 M8 Q
                  for(k=i;k<j;k++)' g# v! T* N8 H' O. w( F
                      printf("%c",a[k]);
    ' e) F9 |/ y" p/ ]" B              printf("1");6 V/ o) ~3 u  U% S2 p
                  i=j;
    5 j: w6 s& D: v          }
    : y1 Y/ H9 v/ A9 H1 e' @      }: |* k! ], }5 |! O- f; J; n
          if(n==1)
    7 Q: K; O3 e" B1 m( E" B% p; e          if(a[0]=='1')1 a3 j8 g# u2 \2 q
                  printf("11");: F! N4 [9 |& D8 R% {$ d
              else0 ?) @% V) [( e
                  printf("1%c1",a[0]);5 u9 f' J7 y% C) e+ N
       printf("\n");
    ( q2 {) V+ t- l }
    0 V# `( v! \/ M- J! M, `) c      来源:编程爱好者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, 2025-11-1 05:14 , Processed in 0.689727 second(s), 73 queries .

    回顶部