QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6131|回复: 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
    & V, m0 O9 D6 n8 Y7 l* t; K; C, u) V9 d, z+ L* T
    Your task is to write a program that performs a ** form of run-length encoding, as described by the rules below.
    ) w& l9 N5 V, I0 ]9 ?; @3 b5 E7 {
    2 U* s5 `8 n8 o3 ~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. # ?3 J( I: U5 j4 S8 u! S8 e
    , P9 r: y) k" T9 Z9 i
    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 " k* ?8 m0 q' ^! j0 z1 d7 z1 T
    sequence, it is escaped with a 1, thus two 1 characters are output.
    # _; L1 u9 S2 X! Z
    $ e4 D8 ]8 i* \$ v% Q8 ?6 VInput + c+ K8 m, m' z# C# ^+ U

    0 @$ t8 y; J- 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.
    " n8 n8 m5 H5 y3 m& |4 \0 l
    4 a' S* k+ w3 ?9 t+ b& r  XOutput # G- _& o* Y# |3 K, _

    , j2 ^1 f& ]* \6 p5 y& {: pEach 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. % \* ]1 n- R% C/ ?( i4 {
    * T4 C$ o: ]* c0 M/ @# m$ K  Z2 M$ G
    输入样例


    4 M3 j- U. H& [8 ~/ }AAAAAABCCCC5 m' u' ]7 b" ?' i3 s( R3 O
    12344
    4 h0 i' w$ o- q1 S9 L9 `


    . e0 [% [# w( g' r: S/ a5 c8 l  u* r- E
    输出样例


    % y% U4 _) S( ^" \6A1B14C
    * ?8 v6 [. R& \% J" G1 m111231243 Y7 r2 e# J  @$ Z

    % K6 O3 A5 J# R
    " ]9 P: I+ D4 [
    Source, d2 z2 F. `6 s1 Z) I  i
    " c" U4 X  N, q; `
    Ulm Local 20044 Y3 F$ ]) w4 S. l, o

    2 A! |% l3 H2 ~4 F7 G5 \example1:
    . t. D5 H9 y& p" I3 M#include<stdio.h>) U, i/ ~# f) c( ~- G
    #include<string.h>/ q- f% s, m. X( N. F: C  E0 S
    void main()/ m/ ]9 R/ X' z# Q6 z& ^8 k- X0 n
    {  int i,j,k,n;! i3 i& k$ l( |' B0 L: l
       char a[50];- c7 v5 R' S( T- P- I: a
       gets(a);
    7 F' e: L9 y/ W  n2 g" k   n=strlen(a);
    : y+ ]9 ]/ |. J, R3 r& E2 c2 Y2 q9 E( ]! c0 O- s  f
       for(i=0;i<n-1; )* v7 O1 {2 {5 u8 G6 x+ [, v
          if(a==a[i+1])( c/ |2 h8 e8 \' {' E
          {  for(j=i+1;a[j]==a[j+1];j++);
    5 s& V2 K7 D+ ~0 j0 K9 e          printf("%d%c",j-i+1,a);
    3 n3 B6 m9 W) @& T9 e          i=j+1;
      C! _& v# r8 X3 S      }& k: C4 {, C4 \+ [. Y& y3 ?
          else
    0 g. |& g) Z) F4 F+ q/ ~* M2 S& \      {  if(a==1)
    0 k% P- M/ g9 D" Y. Y' B            { printf("11");0 d, N" m4 b9 f4 |' R9 x! `
                     i++;. |+ \8 \* r; P, @* K. z: f
                }( {6 M+ |$ M5 l) F: e+ {/ y$ _
              else( T/ F0 D. b, U; ]8 _
              {  for(j=i+1;a[j]!=a[j+1];j++);( p6 C+ j  e; @, G
                  printf("1");6 E, J/ c- Q. X! V$ L0 _
                  if(j==n+1)4 H* i: R% d! U% g
                      j--;7 O4 x0 @6 n- {& T% M  R3 }& Q; e) F
                  for(k=i;k<j;k++)1 N9 s* A% W$ W) M
                      printf("%c",a[k]);: u' k  E9 L' K. B* f4 o3 ?: Q
                  printf("1");! K" a; ~) l) q  V% a* v; C
                  i=j;
    ' F% l; K# g, t0 D4 t8 [          }
    & Z" ~9 e( A# [7 r7 J! J4 k- N      }
    + _. K! i; H# l/ m      if(n==1)
    " i1 L6 V; R! K$ }( A# R% T8 J/ T          if(a[0]=='1')
      k1 Z3 O! r' N- |  ]5 |- J! l              printf("11");9 A: T! @7 K, Y6 y! x
              else
    . l5 _4 C( S7 K6 a              printf("1%c1",a[0]);5 k6 Z9 ]$ Q5 p5 Q$ i
       printf("\n");
    $ f0 z5 v0 k# u$ F3 W4 k }
    . f9 i& b: P9 F% @/ e$ ]4 C- e评论人: Colby  发布时间: 2010-3-2 12:04:06 #include<stdio.h>
    5 h' g1 z" G* q5 C3 }5 V! W2 Z#include<string.h>" x$ {: E* i; k# {! R
    void main()
    ( Q5 C9 m1 ^: k6 S3 y( J+ k{  int i,j,k,n;2 ^( ^- r" M/ r/ }9 N1 |
       char a[50];
    . b9 K* W2 L" e   gets(a);- z1 B. V+ e0 P: B) `5 p
       n=strlen(a);
    6 H5 m, k) N3 T3 ^7 [7 e% U. {3 F+ l+ ~
       for(i=0;i<n-1; )* G  S  P. W0 a" S' K6 P  G. F
          if(a==a[i+1])
    8 J# ?0 i! B6 t  R# q' x. o- d      {  for(j=i+1;a[j]==a[j+1];j++);' F$ z; D( z! Q( S1 I4 n
              printf("%d%c",j-i+1,a);( L4 z# M! f$ Q# U
              i=j+1;* p. i& H2 }- b% c, ]0 D9 g
          }
    ( [4 E% l: b5 Z3 i# b1 R+ S      else3 V2 w; z" @5 p# o+ n, i2 e
          {  if(a==1)
    9 A) \/ p# |# Z* ]! H2 ^# ]            { printf("11");: d( O5 k4 Q  C3 U4 X& s
                     i++;7 b! G/ s) u- d3 X6 c. y
                }
    ) m; i! t' z) X          else
      |9 u% q* t3 s6 ^2 N          {  for(j=i+1;a[j]!=a[j+1];j++);
    / @! q' s9 d8 e8 W/ T9 ]- H' x              printf("1");
    1 N) H0 N, e$ j1 K              if(j==n+1)- u# a  t+ O( e2 R: B
                      j--;+ V: i& p3 U4 o/ I, W
                  for(k=i;k<j;k++)$ N0 d8 e) [$ e
                      printf("%c",a[k]);
    ; e5 n% U5 ~$ J9 G5 S0 e* Y              printf("1");# h0 Z" a* i8 W1 ^
                  i=j;7 R% p- b. e5 r/ a2 g% e! t7 [$ Y. W
              }
    ) n% a+ y- q) f- E: B! ]      }$ ^% b4 b3 o9 i/ G+ A
          if(n==1)6 S2 V( N5 e9 c4 \4 {
              if(a[0]=='1')
    & B# S, u! h$ s5 q0 Z" k# x2 w              printf("11");# \# L9 |8 b: y8 O  m9 p) n
              else8 h, K2 p6 ^. i
                  printf("1%c1",a[0]);
    3 o% K9 f+ E& |5 k   printf("\n");: K. H+ u: L2 l" v; `) J
    }    example2:#include<stdio.h>
      _( v: m% N: z! I: C( o, J#include<string.h>
    / @% l. I' {* r+ s$ ?void main()
    ! l2 G3 O8 M) E2 k  l- B' r{  int i,j,k,n;$ i% [! N7 ?4 u) B4 Q9 |4 L
       char a[50];
    6 [$ P& y! f! T, \3 Q: W   gets(a);$ n: `7 y) c1 z+ t) a5 {( B
       n=strlen(a);1 a, h/ F, U4 l7 h' D0 I7 R& z
    ; w6 u4 _3 t, D4 E
       for(i=0;i<n-1; )
    - A1 ?6 Y2 |0 Q. U$ v$ ]: G. j      if(a==a[i+1])
    : i- x- w+ t3 ^3 r8 N5 F- ?6 |      {  for(j=i+1;a[j]==a[j+1];j++);
      D* l  a& I% v1 Y- Z          printf("%d%c",j-i+1,a);/ G# B  Q. v0 V- T" c5 i
              i=j+1;
    * q) i4 a1 R# i1 `% d+ y      }& n- J$ k' S& ~6 V, u9 G6 q' S
          else  d8 f4 U0 H7 X3 B; Z9 J
          {  if(a==1)
    : |  N6 t# C0 e8 k! Y            { printf("11");
    0 E3 q+ W+ d) @5 Q- O+ Q                 i++;5 j* i/ h- ]  n
                }
    2 t& f! z/ S& b/ y3 @          else- V0 P; ]2 P6 \2 R+ H; P9 z( x7 Y
              {  for(j=i+1;a[j]!=a[j+1];j++);
    " l% |; I, F9 ~& q7 ^+ Y              printf("1");: |  P( c, G+ s0 h
                  if(j==n+1)3 i/ F% |+ W1 L5 K
                      j--;0 ~* f# o3 O5 n/ ]% w/ W  c
                  for(k=i;k<j;k++)5 T' ~" ~, K( f% {" w& x9 _6 R
                      printf("%c",a[k]);
    5 l" R- l# J/ y# a) z$ I4 p              printf("1");# @7 y4 a. M) m1 R) u; l5 T  G
                  i=j;! e3 U$ K5 c/ z  u( I1 L* T
              }5 m% T8 e$ i% }
          }2 N' e! k6 J; A  |1 Q# a) |3 ]
          if(n==1)
    / v3 z' f: |5 R* m5 L6 j& e6 [          if(a[0]=='1')
    " r+ e' [  l( X. w: p              printf("11");
    ) V. K2 G7 v% v* X6 G          else
    7 t( e. S! e7 ?) J0 @' O              printf("1%c1",a[0]);4 ]. I- K1 w; ?
       printf("\n");
    : s0 j( r' M, F8 u }1 h+ s, O1 r/ l7 @. s( L" u
       example3:#include<stdio.h>
    / L) w' A7 V( P4 A! N, h+ o#include<string.h>( e4 O6 q( Y+ D( X/ m
    void main()# T  Z7 A) K0 N. k, ~4 M
    {  int i,j,k,n;
    3 Q/ I% u# l; z2 _0 x* x   char a[50];
    $ m* t' p# L& }   gets(a);
    . u. S* N, r8 U' J- _   n=strlen(a);( O0 Q% B" e$ |5 f* E" N

    . y: j, Z7 i' O" A   for(i=0;i<n-1; )
    1 J  T4 j1 l1 b0 h. F      if(a==a[i+1])
    2 Z! l4 @* G2 t0 x      {  for(j=i+1;a[j]==a[j+1];j++);
    ) y( A' D7 z( C          printf("%d%c",j-i+1,a);2 [. ?2 r; o" S4 I+ t
              i=j+1;; o/ u2 j! b9 ]  \. I
          }" p) p  w( g6 d. Q. p; h& M, J
          else& {7 k4 w% v5 M9 Z3 E
          {  if(a==1)
    9 ?+ k* w% k* F6 ^4 `( E# v/ l4 V            { printf("11");
    ! R4 P( [; j) n! [/ |, o2 t' R" B                 i++;
    % G' h  o0 K3 d            }
    - P) c! i) \, z! |" ~0 w( L          else# D6 ]  W* k" t, D6 a. D
              {  for(j=i+1;a[j]!=a[j+1];j++);( @4 y. X5 A% D9 v9 ]% y  G
                  printf("1");
    ( L# h1 Y5 A" }+ C. q, [9 t5 h              if(j==n+1)( j1 j) K+ i' @/ D* F  J3 t; Z4 b
                      j--;
    / v( I+ B( J$ K              for(k=i;k<j;k++)2 c9 r: a- X2 P( ~; K
                      printf("%c",a[k]);1 ~" k4 \5 z; L/ d$ M4 p& r
                  printf("1");
    ) N7 v0 P( l4 x) M              i=j;2 k# C( G& i0 i8 Y
              }
    5 X) g; T4 b. o      }  L4 s  I* n- p) O# p7 d! d
          if(n==1)
    - o" z7 Z, e9 U0 I7 q0 J# Q6 u- ~/ K          if(a[0]=='1')
    * p. ^' ~/ I& v              printf("11");
    % N- g5 q  d% |' @7 i          else9 m3 Y2 w: \0 C1 e+ f" o$ m
                  printf("1%c1",a[0]);+ ?' D! u/ f& i" t1 T) c
       printf("\n");9 s4 L6 l* o; J' X9 X
    }* g% E5 z2 V, ~0 r0 S7 K
          来源:编程爱好者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, 2025-7-25 02:05 , Processed in 0.388758 second(s), 74 queries .

    回顶部