QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6467|回复: 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 9 K6 t8 p( o1 t7 K
    3 D# U6 r) y; Y! i
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below. 5 A; v$ L. [3 c7 ]& C5 d4 K4 v

    . F' @, [' A9 b: p( {( j5 f- b' qAny 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. 5 [' g; i: J, `1 N% d: c

    , w! L) y. m& NAny 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
    ; C5 q2 ?- k: G- ~! Osequence, it is escaped with a 1, thus two 1 characters are output. ! M; Z/ ~5 q) R3 {

    5 y. H# Z  E9 dInput ( W' @* {8 R- G( ^
    . X$ c9 K0 Y/ u2 _  G
    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. + ^1 K6 t' B. \( @( S2 W

    ! l2 a# Y9 j" G7 R: r2 ^Output . K' b6 M" a% J- h

    5 t0 h5 A# Q" yEach 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. ( Q3 Q+ n& f' l, {' Z* c9 ]4 f) O
    0 G, u2 N, a- {( K; ~$ V
    输入样例


    + ~3 O5 Z/ x+ S! }" m8 T9 RAAAAAABCCCC
    # M6 n) [& i* x8 F: }2 s, {; Z12344! c8 ?5 [2 E7 T# e5 M4 `; w


    , ]1 N  C2 n. {& b/ |
    " i9 ^* C, |& g- V2 Y4 C5 \输出样例


    1 T  y  x8 `. B. w7 o4 z8 C6A1B14C
    - t  d& U( g. e6 |11123124
    2 J- ^3 ?8 E3 F2 b2 t0 L


    4 l; e5 N4 d2 c0 @
    # R0 N: ~/ I# ]8 Y% cSource2 N8 \, D% G1 i
    / G, ^7 o5 M* H1 u) d
    Ulm Local 2004
    4 v- e: f; K7 w, k. X0 ?3 n$ f) Z* V+ y; Y4 S, R6 Z7 S
    example1:/ }& [1 c1 Z" w+ |! Z
    #include<stdio.h>9 {7 s$ ^. {* l" g+ H/ a6 i
    #include<string.h>
    / ]5 ~( v# |0 Y4 o8 tvoid main()- s* F5 {! I6 Z6 e5 j. w+ `  b" q
    {  int i,j,k,n;1 m. U+ A# V+ @+ W* I  E
       char a[50];; ^4 \9 J5 P; _4 V/ m' R
       gets(a);
    4 I) h9 q* n& _& l   n=strlen(a);* g, {  T0 l5 v2 R. ]; ]2 [

    ! U+ M6 H  o9 ^5 |( D; Z   for(i=0;i<n-1; )
    3 F* @& H2 ]6 b6 \" z" _      if(a==a[i+1])2 U+ V# u8 m: ^
          {  for(j=i+1;a[j]==a[j+1];j++);
    * O, u; D# c8 z# a6 n          printf("%d%c",j-i+1,a);- N* ]* @/ S1 _) Y
              i=j+1;1 Y. Y% ~8 n; m
          }
    ' q% ~; h% h. H1 p      else% R! q9 y0 `- c0 x0 r
          {  if(a==1)
    3 k4 g$ k+ [7 ]3 G            { printf("11");
    ) q8 Q5 \7 |; J% G  I% ?; }                 i++;
    5 `; I1 l5 Y/ D* ?" W# b            }
    4 b9 y9 P2 S: Z2 B: d          else
    $ {- l" i! j& s$ o& t          {  for(j=i+1;a[j]!=a[j+1];j++);$ ?- f/ D% ]/ z: l! B
                  printf("1");
    1 W4 ?' z+ q, W3 n/ v. n              if(j==n+1)3 W- ^# K7 z) h/ l7 K
                      j--;
    6 j( F9 O# @% H/ f) b* {              for(k=i;k<j;k++)
    ' W) v3 |& f  Z. @                  printf("%c",a[k]);
    % j# z3 K/ b9 E6 _3 p8 A4 d              printf("1");: W" u% q# B5 u
                  i=j;
    / f8 z0 _* z+ G( d( ^8 A: |" r5 N2 S7 u          }9 T5 A2 i' p1 ~) Z3 b% G1 R
          }
    + k, n# ^/ s! K; w) u( @1 L      if(n==1)
    " f- j/ y5 ?% g6 l! L          if(a[0]=='1')
    + g3 @  W5 H4 g8 i- t* @2 R. Z              printf("11");5 f- Z" r" y$ C- U
              else8 X' Z" g( c$ s/ |  I
                  printf("1%c1",a[0]);
    1 [0 d7 ]  X: Y3 L# z3 m& T   printf("\n");# P0 l  e0 C9 h; W* `0 @9 j
    }
    ) O" \* a. V' i3 W6 a7 m# n评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>% n4 ?' q8 l% L8 h9 \
    #include<string.h>
    * E# ~- N& ], K) s  [void main()$ P0 H0 N1 @+ B* y; L/ F
    {  int i,j,k,n;, F: ^* C+ S! j4 e0 `0 X
       char a[50];  m/ h' h3 h( b
       gets(a);! V# V1 V7 Y: ~* V4 E+ ^# g
       n=strlen(a);
    * y/ _4 A: }" E1 F' B: \- j9 |) P/ V. c' x( s' ?/ @3 @, A# `+ ~" Z
       for(i=0;i<n-1; )" x4 O+ m; U% o% W* H! R
          if(a==a[i+1])+ z4 O) m( f2 `
          {  for(j=i+1;a[j]==a[j+1];j++);
    " O8 v6 Z; B) Q' s2 t6 @: C# B& N; B          printf("%d%c",j-i+1,a);
    * i) t7 |/ p2 S8 ]          i=j+1;
    ! k0 R7 d$ F7 o6 w- z4 ]$ Z      }
    - }' H7 T& G) \3 V+ U/ ~1 q. O9 l      else% _5 ]' S  N. [5 M/ C: H  t
          {  if(a==1), R( @7 \7 P$ S. A$ y/ n, {- Q
                { printf("11");
    ! J3 H! Q& W& G- X6 o* H2 p                 i++;6 H% G: W/ s! C
                }
    / T$ l- F3 X* t. b          else0 q& r* a2 L  H. H0 h4 z% Z# {
              {  for(j=i+1;a[j]!=a[j+1];j++);9 I( \7 b. [+ P3 w
                  printf("1");) K1 _9 i8 ?9 o/ Y+ a- ^
                  if(j==n+1)
    2 V! e7 t, A. [0 ^7 |8 a                  j--;/ n! T1 i- A. I1 ^# F$ G
                  for(k=i;k<j;k++)9 ~: Y2 h5 r# W# B
                      printf("%c",a[k]);
    , Y9 h5 r: }0 Z1 c$ v, a              printf("1");
    # S! t  v2 C- U. G6 j$ y4 s- E4 f. P              i=j;9 a0 v1 T  s& M' h& B6 m
              }
    4 Z' F4 N% V* _- P( a      }3 t" Y( ~3 |% X
          if(n==1)$ m$ U& i0 q1 o+ A5 g' G
              if(a[0]=='1')
    7 f0 O' w1 G5 z0 P4 z              printf("11");5 w5 x* f' J9 z7 c7 R2 U$ R+ b
              else  x2 g( x0 M. v! w. j/ V: \# H' a% y
                  printf("1%c1",a[0]);
    % q* u( }4 _) [, ^1 j! c2 [   printf("\n");
    ! U5 V+ i  n7 ~3 l }    example2:#include<stdio.h>
    & M- u1 q! g8 H2 n1 ]#include<string.h>6 ^2 ?3 O% T  d( F) P5 T
    void main()
    ! w/ z* c; i$ f  i- b% h$ w{  int i,j,k,n;
    # y$ t9 q# u9 @0 c1 H  G6 N0 S   char a[50];
    5 y8 F$ r% y/ W5 i2 t/ }3 r   gets(a);
    * C6 h, ?8 Q& s) Y( g4 }+ W# C   n=strlen(a);7 Y% b2 p3 u& R$ T
    7 R) J0 @2 O5 c1 O
       for(i=0;i<n-1; )
    . K; k- n: L0 B( p/ _$ ], \, F      if(a==a[i+1])
    9 B% z) M0 v4 Y# {$ ?      {  for(j=i+1;a[j]==a[j+1];j++);8 I+ d& {/ p5 S7 a# P7 \
              printf("%d%c",j-i+1,a);
    ! C" h' H+ ?9 U  j; u          i=j+1;* Z8 r) t, N. j' A5 o- ^6 i& V
          }
    & z$ X, H6 A0 f) `, l      else) j* L8 |3 V& p# p0 A: n3 J
          {  if(a==1)% o/ A2 a- j3 [* f0 X
                { printf("11");
    ! u5 L* S' }3 m; y- a' P                 i++;$ _, A1 g  U0 ]( L9 L; A
                }
    * _$ O( Y. m" [4 i          else' \0 a. n2 E1 E' {# w1 X
              {  for(j=i+1;a[j]!=a[j+1];j++);
      `: U- k  U# v) }              printf("1");- q/ u* l" C3 z/ o8 ]: u
                  if(j==n+1)
    + A9 D2 o& k5 ]8 f7 q8 s( F8 @( F( U% t                  j--;0 P5 D$ ^1 w7 ?4 P
                  for(k=i;k<j;k++)
    # e0 l1 G  [4 B1 [. g                  printf("%c",a[k]);4 Q2 @1 W6 B, y8 Z7 c: f' q
                  printf("1");! c9 n* p7 u. y8 g
                  i=j;3 E9 ^0 h/ H! R% T9 b- q
              }
    ! G1 N8 I" J1 _% C1 W3 C% \      }
    $ A4 }$ r* G0 D0 r      if(n==1)
    : e, E* J, t1 N6 v4 X: u2 \          if(a[0]=='1')
    $ O0 ~; D% l3 e; K- S              printf("11");
      K. Q  b! `2 N4 i" @6 r5 T          else
    1 X6 r* L" a+ c# f* ?              printf("1%c1",a[0]);" G  Z) }1 m6 I9 o9 o+ o
       printf("\n");
    ; y. c/ }1 e: A! g }
    . Y7 r) K( s9 o6 c& k3 G   example3:#include<stdio.h>5 _  R/ {; M' H1 s' X& v7 b1 C9 a9 T
    #include<string.h>
    3 @) _  y8 b: a/ b5 ovoid main()  ?7 u' w' s& K8 y% P* `# N
    {  int i,j,k,n;7 R& V3 c& e  W# Z: I9 i' a, @% F
       char a[50];1 R; X. V9 w8 N& v+ [& y- I
       gets(a);0 e! O7 r# G) l4 ^
       n=strlen(a);
    % @& ]0 A7 F. h% a' Z
    $ N) P! |1 k9 j8 g   for(i=0;i<n-1; )
    / n  E* M4 P3 b" z) s      if(a==a[i+1])
    8 O( c+ D) B9 x& D( }      {  for(j=i+1;a[j]==a[j+1];j++);8 ~2 g* r) z) G* r
              printf("%d%c",j-i+1,a);
    - L& \9 ^+ `- _6 C          i=j+1;! V2 @# `# N" O! I" R; N
          }# e4 q2 [* N4 s4 f7 n' `6 ^! m. @
          else
    + b9 i& f% l4 W# @# L# X  i      {  if(a==1)
    % s  I# _" w8 t$ n/ A' c$ i            { printf("11");
    ; s% ]  ^' O( ]( M4 K6 S                 i++;
    + W) B9 I* l% N4 w: u            }
    / f, B$ l$ p3 b  s1 n          else
    ( E: k" D, e& x          {  for(j=i+1;a[j]!=a[j+1];j++);
    % ?! N7 o# [6 Q9 [- C+ M: u              printf("1");( d8 w/ r. X" Q/ H0 r4 j
                  if(j==n+1)) p" w2 w( s! h9 L+ V
                      j--;
    ) E1 Z& u, {  b1 S: d              for(k=i;k<j;k++)
    " I3 m$ a( H; \4 R3 i                  printf("%c",a[k]);0 x0 B( W" ]6 P! ?2 {( s* t
                  printf("1");
    . i# H2 j+ K0 c              i=j;; T* d* s) m6 y8 c/ p  O
              }2 M& E' A' h: o, r
          }
    ! Y# ]/ G3 w; ^& W# N8 @5 |9 t6 U- h      if(n==1)
      O  [% l  Q) `0 g          if(a[0]=='1')7 {& A% k) `' c9 J1 K
                  printf("11");
    & Y4 A9 ?0 T, s1 ]$ T6 F2 _          else1 K* ?5 A, d' b+ K4 G
                  printf("1%c1",a[0]);
    & ^& @7 J5 o4 C& _   printf("\n");' x% u2 z3 ~2 T5 W4 q
    }+ V% W+ }  [7 W* }8 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-4-21 08:53 , Processed in 0.432184 second(s), 75 queries .

    回顶部