题解

120 条题解

  • 0
    @ 2009-08-15 15:17:07

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    哈哈,一次AC!

    33行秒了,用递归做的

    {{{{program NOIP_2006_3;

    var a:array[1..25]of char;

    i,j,k,n,m,l,s,t,w:longint;

    function getord(ch:char):integer;

    begin

    exit(ord(ch)-96);

    end;

    procedure init;

    begin

    readln(s,t,w);

    for i:=1 to w do

    read(a[i]);

    end;

    procedure up(code:integer);

    begin

    if getord(a[1])>=t-w+1 then halt;

    if (getord(a[code+1])

  • 0
    @ 2009-08-12 20:24:26

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2009-08-06 21:52:47

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    一次AC!

  • 0
    @ 2009-08-06 19:54:25

    农夫山泉

  • 0
    @ 2009-08-05 16:22:34

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

  • 0
    @ 2009-08-04 17:06:38

    var a:array[1..26]of longint;

    s,t,w,i,p,q:longint;

    str:string;

    procedure first;

    begin

    readln(s,t,w);

    readln(str);

    end;

    Begin

    first;

    for i:=1 to w do

    a[i]:=ord(str[i])-96;

    if t-s>w then

    begin

    p:=1;

    while (p

  • 0
    @ 2009-08-03 15:05:50

    const

    a:array[1..26] of char=

    ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');

    b:array['a'..'z'] of integer=

    (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26);

    var

    s,ss:string;

    i,j,k,l,p,m,ll:longint;

    begin

    readln(l,m,p);

    readln(s);

    ll:=length(s);

    s[ll+1]:=a[b[s[ll]]+1];

    ss:=s;

    while k=b[ss[j+1]] do j:=j-1;

    ss[j]:=a[b[ss[j]]+1];

    if j=0 then halt;

    for i:=j+1 to ll do ss[i]:=a[b[ss]+1];

    writeln(copy(ss,1,ll));

    end

    else

    begin

    ss[j]:=a[b[ss[j]]+1];

    writeln(copy(ss,1,ll));

    end;

    k:=k+1;

    end;

    end.

    郁闷ING

  • 0
    @ 2009-07-30 09:55:43

    program noip2006_3_count;

    var a:array[1..26]of longint;

    s,t,w,i,p,q:longint;

    str:string;

    procedure first;

    begin

    readln(s,t,w);

    readln(str);

    end;

    Begin

    first;

    for i:=1 to w do

    a[i]:=ord(str[i])-96;

    if t-s>w then

    begin

    p:=1;

    while (p

  • 0
    @ 2009-07-26 14:37:09

    var

    s,t,w,i,j,k,ss:integer;

    str:string;

    x,y:char;

    begin

    readln(s,t,w);

    readln(str);

    ss:=1;

    while (ss

  • 0
    @ 2009-07-27 14:56:49

    一次AC,秒杀,不过代码有点长...

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var min,max,wei,b,c,d,p,e:integer;

    st:string;

    s:array[0..5,0..50] of integer;

    a:array[1..26] of char;

    begin

    readln(min,max,wei);

    readln(st);

    c:=0;

    for b:=min to max do

    begin

    c:=c+1;

    a[c]:=chr(b+96);

    end;

    for b:=1 to wei do

    for d:=1 to c do

    if st[ b ]=a[d] then

    s[0,b]:=d;

    for b:=1 to 5 do

    begin

    for d:=1 to wei do

    s:=s;

    inc(s);

    while s>max-min+1 do

    begin

    p:=wei;

    while s>max-min+1 do

    p:=p-1;

    inc(s);

    while pwei+1 do

    begin

    p:=p+1;

    s:=s+1;

    end;

    end;

    for d:=1 to wei do

    write(chr(ord(s)+96+min-1));

    writeln;

    end;

    end.

  • 0
    @ 2009-07-24 20:50:22

    ... 又不会

    又看别人的写出来。。。

    天啊 我没救啦

  • 0
    @ 2009-07-23 16:00:57

    program dsa;

    var s,t,w,i,j,z:integer;

    a:array[1..26] of integer;

    s1:string;

    begin

    readln(s,t,w);

    readln(s1);

    for i:=1 to w do a[i]:=ord(s1[i])-ord('a')+1;

    for i:=1 to 5 do

    begin

    z:=w;

    while (a[z]=t-w+z)and(z>1) do dec(z);

    if (z=1) and (a[1]=t-w+1) then exit

    else

    begin

    inc(a[z]);

    if z

  • 0
    @ 2009-07-22 21:26:38

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var x,y,n,k,i,j:longint;

    st:string;

    begin

    readln(x,y,n);

    readln(st);

    k:=0;

    while k0) do dec(i);

    if i=0 then break;

    st[i]:=succ(st[i]);

    for j:=1 to n-i do st:=chr(ord(st[i])+j);

    writeln(st);

    end;

    end.

    Flag    Accepted

    题号   P1318

    类型(?)   模拟

    通过   2345人

    提交   3577次

    通过率   66%

    难度   1

    提交 讨论 题解

    var x,y,n,k,i,j:longint;

    st:string;

    begin

    readln(x,y,n);

    readln(st);

    k:=0;

    while k0) do dec(i);

    if i=0 then break;

    st[i]:=succ(st[i]);

    for j:=1 to n-i do st:=chr(ord(st[i])+j);

    writeln(st);

    end;

    end.

    十行秒杀,方显oier本色

  • 0
    @ 2009-07-18 19:00:58

    #include

    long int s,t,w;

    long int a[100];

    char c[100];

    main()

    {

    long int i,tmp,j,temp;

    scanf("%d %d %d",&s,&t,&w);

    scanf("%s",c);

    for( i = 0; i < w;i++)

    a[i] = c[i] - 'a'+1;

    for(i = 1; i

  • 0
    @ 2009-07-18 15:48:59

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2009-07-18 14:50:23

    var

    a,b,c,max,min:array[1..30] of char;

    i,j,k,m,n,s,t:integer;

    procedure init;

    begin

      readln(s,t,n);

      for i:=1 to n-1 do

       read(a[i]);

      readln(a[n]);

      for i:=n downto 1 do

       max[i]:=chr(ord('a')+i-n+t-1);

    end;

    begin

    init;

    i:=n;

    j:=0;

    for i:=1 to 5 do begin

    j:=n;

      if ord(a[j]) < ord(max[j]) then begin

       a[j]:=succ(a[j]);

       for k:=1 to n do

        write(a[k]);

        writeln;

       end

      else while a[j]=max[j] do begin

         dec(j);

         if a[j]max[j] then begin

           a[j]:=succ(a[j]);

           for k:=j+1 to n do

           a[k]:=succ(a[k-1]);

           for k:=1 to n do

           write(a[k]);

           writeln;

           break;

         end;

         end;

      end;

    end.

  • 0
    @ 2009-07-15 22:22:19

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    其实挺简单的......

  • 0
    @ 2009-07-14 16:33:24

    program count;

    var

    a:array[1..26] of char;

    b:array[0..26] of integer;

    i,s,t,w,e,j:integer;

    st:string;

    begin

    for i:=1 to 26 do a[i]:=chr(i+96);

    readln(s,t,w);

    readln(st);

    for i:=1 to w do b[i]:=ord(st[i])-96;

    while (b1) do i:=i-1;

    b[i]:=b[i]+1;

    for j:=i+1 to w do b[j]:=b[i]+j-i;

    for j:=1 to w do write(a[b[j]]);

    writeln;

    end;

    end.

  • 0
    @ 2009-07-09 16:51:26

    YY是来自火星的水星人.

  • 0
    @ 2009-07-08 17:13:36

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    想知道怎么做吗,去九江一中问“我是地球人”

信息

ID
1318
难度
1
分类
组合数学 点击显示
标签
递交数
2115
已通过
1438
通过率
68%
被复制
23
上传者