题解

74 条题解

  • 0
    @ 2009-08-28 13:49:21

    硬题要硬做!!

    大家各显神威吧!

    想到有 ".0123" 这种数据 没想到有 "123." 这种数据...

    WA了第五个点。

  • 0
    @ 2009-08-06 14:25:58

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program ex;

    var b:array[1..9] of string;

    a:array[1..1000] of string;

    s,n,l,u,r:string;

    k,y,z,g,i,h,o:longint;

    begin

    b[2]:='S';b[3]:='B';b[4]:='Q';b[5]:='W';

    b[6]:='S';b[7]:='B';b[8]:='Q';b[9]:='Y';

    readln(S);y:=1;z:=0;u:=s;r:=s;

    g:=pos('.',r);

    if g>0 then delete(r,g,1);

    if (r[1]='-')or(r[1]='+') then delete(r,1,1);

    for i:=1 to length(r) do if r[i]='0' then o:=o+1;

    if o=length(r) then begin write('0');halt;end;

    if (g>0)and(g'0');

    h:=length(S);

    while y

  • 0
    @ 2009-08-02 23:48:26

    虽然0MS,但是每次我写的程序似乎都比众牛们的长3-4倍

    郁闷到底..

  • 0
    @ 2009-08-02 11:35:30

    41行搞定~~~2次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

    s,sz,dz:string[50];

    t,l,lz,xx:byte;

    begin

    readln(s);

    t:=1;l:=length(s);

    if s[1]='-' then begin inc(t); write('F'); end;

    if s[1]='+' then inc(t);

    while not ((s[t]='.') or (t>l)) do

    begin

    if not ((sz='') and (s[t]='0')) then

    sz:=sz+s[t];

    inc(t);

    end;

    if sz=''

    then write('0')

    else begin

    lz:=length(sz); xx:=1;

    while lz0 do

    begin

    if (xx=2) and (sz[lz]'0') then dz:='S'+dz;

    if (xx=3) and (sz[lz]'0') then dz:='B'+dz;

    if (xx=4) and (sz[lz]'0') then dz:='Q'+dz;

    if (xx=5) and (sz[lz]'0') then dz:='W'+dz;

    if (xx=6) and (sz[lz]'0') then dz:='S'+dz;

    if (xx=7) and (sz[lz]'0') then dz:='B'+dz;

    if (xx=8) and (sz[lz]'0') then dz:='Q'+dz;

    if (xx=9) and (sz[lz]'0') then dz:='Y'+dz;

    if not((dz[1]='0') and (sz[lz]='0')) then

    if not((dz='')and(sz[lz]='0')) then

    dz:=sz[lz]+dz;

    dec(lz); inc(xx);

    end;

    write(dz);

    end;

    if (s[t]='.') and (l>t) then

    begin

    inc(t);write('D');

    while t

  • 0
    @ 2009-08-01 13:00:48

    汗....4次才AC...而且第3338人提交..好背啊...

  • 0
    @ 2009-07-27 22:28:25

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var w:array[0..20]of char; st:string; i,k,f,n:longint;

    begin

    w[2]:='S';

    w[3]:='B';

    w[4]:='Q';

    w[5]:='W';

    w[6]:='S';

    w[7]:='B';

    w[8]:='Q';

    w[9]:='Y';

    w[10]:='S';

    readln(st);

    n:=length(st);

    f:=0;

    k:=0;

    for i:=1 to n do if st[i]='.' then k:=i;

    if k>0 then

    begin

    for i:=1 to k-1 do

    begin

    if (st[i]>'0')and(st[i]'0')and(st'0')and(st[i]'0')and(st[i]'0')and(st'0')and(st[i]

  • 0
    @ 2009-05-24 22:24:15

    program p1230;

    var s:string;

    x1,k,len,flag,i,x,flag1,flag2:longint;

    s1,s2:string;

    procedure input;

    begin

    readln(s);

    k:=pos('.',s);

    len:=length(s);

    if k0 then

    begin

    s1:=copy(s,1,k-1);

    s2:=copy(s,k+1,len-k);

    end

    else s1:=s;

    end;

    procedure des1;

    begin

    case s[1]of

    '+':delete(s1,1,1);

    '-':begin write('F');delete(s1,1,1); end;

    end;

    flag:=0;

    for i:=1 to length(s1) do

    if s1[i]'0' then flag:= 1;

    if flag=0then write('0') else

    begin

    while s1[1]='0' do

    delete(s1,1,1);

    x:=length(s1);

    i:=1;

    while length(s1)0 do

    begin

    if s1[i]='0' then

    begin

    x1:=1;

    while (s1[i]='0')and (length(s1)0) do

    begin

    inc(x);

    flag:= (length(s1)) ;

    case flag of

    4:begin if flag11 then begin if x

  • 0
    @ 2009-05-08 23:17:53

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    #include "stdio.h"

    #include "string.h"

    int main()

    {

    char s[55]="";

    int i,j,k,v,sh,b,q,sw,bw,qw;

    scanf("%s",s);

    i=0;

    if(s[i]=='-')

    {

    printf("F");

    i++;

    }

    while(s[i]=='0')

    i++;

    j=i+1;

    if(s[i]=='.'){ v=1; j=i;}

    while(j0)

    {

    switch(k)

    {

    case 1: if(s[j-k]!='0')

    {

    if((!sh)&&v)

    printf("0");

    printf("%c",s[j-k]);

    v=1;

    }

    break;

    case 2: if(s[j-k]!='0')

    {

    sh=1;

    if((!b)&&v)

    printf("0");

    printf("%cS",s[j-k]);

    v=1;

    }

    break;

    case 3: if(s[j-k]!='0')

    {

    b=1;

    if((!q)&&v)

    printf("0");

    printf("%cB",s[j-k]);

    v=1;

    }

    break;

    case 4: if(s[j-k]!='0')

    {

    q=1;

    printf("%cQ",s[j-k]);

    v=1;

    }

    break;

    case 5: if(s[j-k]!='0')

    {

    if((!sw)&&v)

    printf("0");

    printf("%c",s[j-k]);

    v=1;

    }

    if(qw||bw||sw||s[j-k]!='0') printf("W");

    break;

    case 6: if(s[j-k]!='0')

    {

    sw=1;

    if((!bw)&&v)

    printf("0");

    printf("%cS",s[j-k]);

    v=1;

    }

    break;

    case 7: if(s[j-k]!='0')

    {

    bw=1;

    if((!qw)&&v)

    printf("0");

    printf("%cB",s[j-k]);

    v=1;

    }

    break;

    case 8: if(s[j-k]!='0')

    {

    qw=1;

    printf("%cQ",s[j-k]);

    v=1;

    }

    break;

    case 9: printf("%cY",s[j-k]);

    v=1;

    break;

    }

    k--;

    }

    }

    if(s[j]=='.'&&s[j+1]=='\0') return 0;

    if(j

  • 0
    @ 2009-04-18 10:51:48

    晕,这小数点后面的.00也要读出来啊,,似乎是有效数字。。搞死,没看测试数据做不出来。第一次才60分。2个点超时。后面知道要把最后的0加上就AC了,奇怪怎么没超时

  • 0
    @ 2009-03-27 17:33:22

    一遍AC.

  • 0
    @ 2009-03-15 00:12:48

    超短版本51行AC

    #include

    #include

    using namespace std;

    const char str[8]={'S','B','Q','W','S','B','Q','Y'};

    int main()

    { string a,b,temp;

    bool d=false;

    cin>>temp;

    if(temp.find(".")!=string::npos)

    {a=temp.substr(0,temp.find("."));

    b=temp.substr(temp.find(".")+1,temp.size());

    d=true;

    }

    else a=temp;

    if(a[0]=='-')

    {cout

  • 0
    @ 2009-01-23 15:37:21

    给个地方放程序……终于AC了!老天一个多小时……120行……

    终于可以喘口气了!

    模拟

    {———————————————————————————————————}

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

    s:string;

    i,j,k:integer;

    v,sh,b,q,sw,bw,qw:boolean;

    begin

    readln(s);

    i:=1;

    if s[i]='-' then

    begin

    write('F');

    inc(i);

    end;

    if s[i]='.' then begin write('0'); v:=true; j:=i; end

    else begin

    while s[i]='0' do

    inc(i);

    if s[i]='.' then dec(i);

    j:=i+1;

    while (s[j]'.') and (j0 do

    begin

    case k of

    1:if s[j-k]'0' then

    begin

    if (not sh) and (v) then

    write('0');

    write(s[j-k]);

    v:=true;

    end;

    2:if s[j-k]'0' then

    begin

    sh:=true;

    if (not b) and (v) then

    write('0');

    write(s[j-k],'S');

    v:=true;

    end;

    3:if s[j-k]'0' then

    begin

    b:=true;

    if (not q) and (v) then

    write('0');

    write(s[j-k],'B');

    v:=true;

    end;

    4:if s[j-k]'0' then

    begin

    q:=true;

    write(s[j-k],'Q');

    v:=true;

    end;

    5:begin

    if s[j-k]'0' then

    begin

    if (not sw) and (v) then

    write('0');

    write(s[j-k]);

    v:=true;

    end;

    if (qw) or (bw) or (sw) or (s[j-k]'0') then write('W');

    end;

    6:if s[j-k]'0' then

    begin

    sw:=true;

    if (not bw) and (v) then

    write('0');

    write(s[j-k],'S');

    v:=true;

    end;

    7:if s[j-k]'0' then

    begin

    bw:=true;

    if (not qw) and (v) then

    write('0');

    write(s[j-k],'B');

    v:=true;

    end;

    8:if s[j-k]'0' then

    begin

    qw:=true;

    write(s[j-k],'Q');

    v:=true;

    end;

    9:begin

    write(s[j-k],'Y');

    v:=true;

    end;

    end;

    dec(k);

    end;

    end;

    end;

    if j

  • 0
    @ 2008-11-27 18:19:30

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    咻~~终于AC了~~~程序好长时间都不敢交~~

    注意 4567. 这类小数点后没东西的数据~~

    第五个点就是这样的~~ 不应输出“.”

    第一次就WA在这~~~~

    51行2次AC~~

  • 0
    @ 2008-11-22 11:43:15

    luyifan:

    你可以试一下0000000这个数据,应该是输出0的,可是你的没有输出

    还有一个缺点就是如果数据是000.89你试一下

  • 0
    @ 2008-11-03 17:54:43

    #include

    #include

    #include

    #define maxl 50

    long l;

    char str[maxl+10],say[20];

    long c_mon(long start,long end)

    {

    long len,i,ret;

    char lst;

    len=end-start+1;

    if(len>=9)

    {

    assert(len==9);

    assert(str[start]!='0');

    printf("%cY",str[start]);

    c_mon(start+1,end);

    }else if(len>=5){

    if(c_mon(start,end-4))

    printf("W");

    c_mon(end-3,end);

    }else if(len==1){

    assert(0);

    }else if(len==0){

    return 0;

    }else{

    assert(len=2);

    ret=0;

    lst=0;

    for(i=start;i

  • 0
    @ 2008-10-29 15:54:17

    此题过分处:小数点后全是0也要读出来,一定注意!小数点后只要有内容就全文读出!!!

  • 0
    @ 2008-12-26 19:22:04

    译通过...

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

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

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

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

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

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

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

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

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

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

    谢谢suntian!

  • 0
    @ 2008-10-20 21:54:12

    btbtbtbtbtbtbtbtbt……要是考试出一道这种题目,可要好好取舍了。

  • 0
    @ 2008-10-15 20:08:13

    小心后面只有一个点没有数的情况

    Data 5....

  • 0
    @ 2008-10-12 20:46:14

    Br题!太溴了!考虑太多结果提交n遍!小数点后面多余0不用去掉!

信息

ID
1230
难度
6
分类
模拟 点击显示
标签
递交数
1462
已通过
440
通过率
30%
被复制
4
上传者