QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6545|回复: 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
    0 j- z& |% b, Q8 L  @2 c0 M8 `' R- j2 y9 l- X; |
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. # A% {; [9 h  q$ a& \: j
    0 ?3 |; u3 Y. W$ v
    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.
    ! [+ z6 h7 ]# R8 e: a+ ?( t- A( P
    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 - ?8 w: v2 D0 p1 l9 r
    sequence, it is escaped with a 1, thus two 1 characters are output. 5 Y4 \. P( y- ?' z, n$ c
    : N) n1 g6 Z' b' F' M
    Input 1 h/ O0 d; \. H: A% ~

    9 P( F: o8 |' G: H1 eThe 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.
    ' `9 J5 \& F& o; @' Q# P+ T/ U% m
    Output
    , P  T  ^5 W! Z8 R2 @7 S+ {! ]' V5 N( t. F
    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.
    $ C  |. K( t' n( z3 ~
    , p; k% {7 w* `2 E, Q输入样例


    ! B* a: |- H7 b9 qAAAAAABCCCC+ f/ a  T8 C8 a. E/ B. N3 v
    12344
    6 L8 |% ?: z* G. n/ n: r3 {& X


    + T. N1 z& o% `- P/ f
    5 P9 u8 z$ W8 `3 ]8 J7 v7 {5 W% F输出样例


    5 [8 O  f7 w- ^  I, I; p6A1B14C7 G2 T$ y* w7 c# w3 r- D
    11123124
    + m' X6 R( L& R% u9 K% `


    1 ~1 d2 \, m) |1 U: L, A% N5 x+ v
    Source( k' ~; l1 X  n! ~$ Y

    " x1 \% l+ t  z, u2 Z) `Ulm Local 2004
    - d7 F" O; u+ s; u  k$ x- c$ x. p3 l, k  k' t6 @
    example1:
    % l$ w, ]; ], `7 E. Z#include<stdio.h>
      l5 b; m1 @, T! s; O#include<string.h>
    5 x2 S; {  z4 h6 K& D7 Evoid main()2 O0 I* |  p$ h# l+ [
    {  int i,j,k,n;
    0 b0 L6 d- ~; G9 X- l( ?. p% ~   char a[50];( E: M% w; `  k( q& Q" Z7 \3 k
       gets(a);
    9 j7 P& W) y9 F# l" m   n=strlen(a);
    6 t0 M% j& y: q" ?. |
    5 Y. [8 a: ?9 B; [# ^' c* J  S* W   for(i=0;i<n-1; )) ^4 [4 S2 L5 \; y8 I! k
          if(a==a[i+1])
    # a+ s; v" N0 @7 c- _      {  for(j=i+1;a[j]==a[j+1];j++);
    ( T! W$ U) h6 c& [9 \/ t" x; P0 F          printf("%d%c",j-i+1,a);
    % f9 \  X( a( L          i=j+1;! I& B  _; w! `) z( ]4 U8 H
          }
    6 J; J. C5 r! q; w2 ?# w; @7 |      else. k; S( l; X; i  j4 _! |
          {  if(a==1), c4 w; }" @% O7 Y7 w
                { printf("11");
    9 T1 n# b% M0 X( d; r+ D                 i++;
    5 ~( U9 L' H" w8 B/ A0 B            }
    ; I; I  m$ w0 Q8 B! g/ [# u) u          else9 g0 W5 m3 I$ w4 m( C! E+ Y
              {  for(j=i+1;a[j]!=a[j+1];j++);; L( A: n8 G5 e, K: _' H% m
                  printf("1");: A/ [, h/ C# p) v3 L1 L
                  if(j==n+1)2 f( _8 e' y* s5 B4 v: J
                      j--;
    0 j8 j$ p* z- {, ^7 l/ E              for(k=i;k<j;k++)9 A, R* m6 s  k* ?6 i* g8 z5 d
                      printf("%c",a[k]);
    & J# A# w) @$ h% X              printf("1");0 m2 H/ I& {" a4 \6 v
                  i=j;
    . H3 r/ M8 }. W/ M          }8 @, ~& B$ k- y8 ]
          }
    2 ~7 j- N. \/ w9 }6 y) _5 h      if(n==1)+ Q( k. `: v6 B/ n& q  p9 @: ~6 T0 r
              if(a[0]=='1')
    9 X9 }$ A# A  Q+ W* U              printf("11");
    / r- k* Q" Q- a7 z/ T, s% X# {          else2 `  u9 t+ C; p8 c% z
                  printf("1%c1",a[0]);  `, S$ p$ N$ o, R3 B0 ?9 |
       printf("\n");' ^6 R9 ^3 e3 Q2 f7 L7 {0 v
    }2 T4 D& q; Y! o0 m' D: J5 s
    评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    6 \( b3 H6 a3 X3 }, I# v#include<string.h>
    ! r. W$ ^/ E. B4 ovoid main()
    5 C* A$ \4 e$ G5 j$ v4 M7 _3 M{  int i,j,k,n;
    ) n9 x% w( m( _3 ?8 X3 @   char a[50];
    ! h2 R9 `" ?/ D; `3 ?   gets(a);
    " @; m7 ?9 `( I0 F   n=strlen(a);4 F7 j$ U6 s& x3 W( q9 ?0 R' ]

      V  U+ a) i+ Y$ F1 f' V   for(i=0;i<n-1; )$ a8 n4 x7 V) c% l8 E, [
          if(a==a[i+1])
    ' {$ B: F$ H3 Q" |  N      {  for(j=i+1;a[j]==a[j+1];j++);
    . ~2 b; g- Q6 o* G% D, D          printf("%d%c",j-i+1,a);
    7 V  h8 I! g' I6 C& V0 f          i=j+1;
    ( p$ a- l/ z, s. t; v8 a  Z2 Y      }! [( B4 R. S' n" ]0 @
          else, E# I7 b. k9 {
          {  if(a==1)
    % Y) V4 o$ f& L            { printf("11");
    2 t/ X0 S: V% y: w8 n                 i++;
      |; g/ Y' s% a            }( h; f: M; _  _3 Y2 g
              else
    6 y$ _# `; D9 |( y          {  for(j=i+1;a[j]!=a[j+1];j++);
    - Q1 p% n9 M7 U' m4 i              printf("1");( P% u' g" h- z
                  if(j==n+1)
    1 L9 X/ \4 D, D6 Z) g                  j--;$ D* K) U' P6 `( _* w3 D
                  for(k=i;k<j;k++)1 R/ o  \& H7 v* ^
                      printf("%c",a[k]);. p: Q7 F! B8 p( j/ N5 P
                  printf("1");8 o, V9 C  a5 l/ r
                  i=j;' w" e$ O  s% S4 f
              }
    * \" k3 @0 W/ S      }
    9 F$ }9 s& I5 C& ]5 |( o      if(n==1): D$ G  D! H0 q3 P% z. S6 C
              if(a[0]=='1')$ Q4 Q/ \$ s% K$ L# X6 a/ ^6 `( a
                  printf("11");
    * Y7 G( f; b, a# m          else
    ) ]$ A, D! S- I3 _9 E4 n* ]1 n              printf("1%c1",a[0]);! o- B" ]4 Y) A6 j# c3 K* R, O
       printf("\n");8 x4 l* v! q" H- H$ x4 k" K6 e
    }    example2:#include<stdio.h>8 ^1 o8 n' o8 F- L! H
    #include<string.h>" v8 Y& |  f2 y  ?3 \' V6 }
    void main()
    4 h3 O, W) D; R2 c{  int i,j,k,n;. `" [+ w5 b( h0 m' G
       char a[50];
    # d6 c  B3 O) i. `   gets(a);. x4 N3 v8 U, A+ l3 V/ {  C
       n=strlen(a);
    % i: Z$ w2 m1 f% Q  j
    - A' Y$ K9 h" |) N' ]   for(i=0;i<n-1; )+ k2 [1 U+ r4 W; X2 k) Z* P' V
          if(a==a[i+1])3 K+ r0 Y" I  E
          {  for(j=i+1;a[j]==a[j+1];j++);
    , R$ g7 Z- w1 t* S          printf("%d%c",j-i+1,a);4 v) p5 P% _" ^" K2 q7 t1 t2 j
              i=j+1;
    # {5 v( z) n$ R: Z% C      }5 D% A) O" Y. Y% ^' v
          else
    : N/ g/ W! I& l. l! [7 {      {  if(a==1)
      D9 m8 o2 Y4 _" R1 l5 S2 o            { printf("11");7 _1 |  s( w( m9 O
                     i++;8 s7 K. b  n; P/ A
                }: P+ F7 R. t) a7 ~: V( g& M
              else# K- X0 `4 `7 \
              {  for(j=i+1;a[j]!=a[j+1];j++);( I8 c7 I0 \7 v
                  printf("1");
    ! l0 E5 h( u- l: Z" m              if(j==n+1)
    ! W- E1 \+ ^. p, y4 y                  j--;/ _" \; ?+ i  W1 W
                  for(k=i;k<j;k++)
    ( f% P! j. H* ~                  printf("%c",a[k]);. l3 w- [. N5 j$ ^/ k- C' I2 p8 T* v, I
                  printf("1");  P# |$ ~5 {) `  E4 E/ K0 c( |
                  i=j;' ?3 N" I2 c+ h& V1 @
              }/ [& W$ \9 O7 k8 |( E1 W
          }  P& V, o5 b; c* L$ s( q0 w- P  R
          if(n==1)
    9 j, z2 {: X" t+ b: |          if(a[0]=='1')
    0 \/ h9 b) D4 Z9 z              printf("11");9 t0 B" w. m3 N) _; o0 z" G, V6 Y
              else' G# n; C0 Z. ]' K+ C% F
                  printf("1%c1",a[0]);
    8 [+ b* j; M0 d  i# T$ W' z   printf("\n");$ Q0 h% Z3 F2 H: _1 N* c+ R
    }8 f( D6 w' r) P
       example3:#include<stdio.h>
    1 M, v6 P6 v( x( t( {4 j+ T#include<string.h>
    ' M  |0 U% B, O! D( I, X4 x6 Jvoid main()1 c0 ?. D2 |9 v# d
    {  int i,j,k,n;/ f! Y4 h* r! l5 ^( E' a
       char a[50];
    ! ?# o. l1 V' c# f. K3 I   gets(a);, S- A: n& i- B* g7 @  Z# g/ Q3 x
       n=strlen(a);
    ) k$ u4 B4 m# n$ O7 s2 G9 R" L. @+ s0 I) q* L
       for(i=0;i<n-1; )
      v& t. n' K% `' R! U+ b) @      if(a==a[i+1])
    3 a/ I: P8 n) w" D  t, j      {  for(j=i+1;a[j]==a[j+1];j++);" O& ~4 v/ k7 x6 T( E/ O
              printf("%d%c",j-i+1,a);9 s/ x$ Q& A4 x. \5 H& r) P- A
              i=j+1;
    ! U4 d8 H! d, O1 S& s. N      }
    5 x7 v. Q; w* n* g; P; o% b, Z+ o% G      else
    7 t5 F1 E; _4 N3 w2 U      {  if(a==1). j- G" b5 i+ Q- C+ F4 n& _1 s
                { printf("11");
    , d0 m. E- g) O  Y; l) v                 i++;
    ) i, \, g) @; j4 F: H            }
    : u. G, g2 G( o# ]% A& z          else" \! b9 @9 e- P& c) ]
              {  for(j=i+1;a[j]!=a[j+1];j++);
    ) G$ o4 @$ W& ]              printf("1");9 \2 D: _  e& Q0 Y% V+ @) i  q
                  if(j==n+1)% u' [0 T+ ^9 }4 \3 [
                      j--;
    6 W4 M; y8 E/ ?( ]9 r8 h              for(k=i;k<j;k++)
    1 x  A+ }* K! R! b$ o' ^                  printf("%c",a[k]);$ W, a3 @5 e1 D, R5 t0 q% o5 K
                  printf("1");9 u0 ?. D" `9 X! e/ k
                  i=j;# {. G1 @2 A# j
              }3 m3 m/ |0 R9 U% z
          }$ F8 e, p2 I. v! |# h
          if(n==1)0 r* l6 Q" K  I
              if(a[0]=='1')
    % f. m4 V; S( u0 i' q9 Q2 L: Z              printf("11");& r2 i0 ^- p2 Y" l  G( P8 j
              else
    & V7 T+ M6 e0 T# N, d" c              printf("1%c1",a[0]);8 [; f( |$ A% v9 K
       printf("\n");) o. F3 Y" T0 r$ [$ i
    }% z% P3 ]( [+ l- C, ]- _
          来源:编程爱好者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-8-1 07:47 , Processed in 0.388138 second(s), 74 queries .

    回顶部