题解

129 条题解

  • 0
    @ 2008-10-01 13:56:11

    居然第一次忘了输出“名字最短”的RP牛。。。

    rp啊。。。。

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-01 12:21:50

    tiger测AC

    lora temper测90。。

    这题果然RP题

  • 0
    @ 2008-10-01 12:18:40

    而且以为是只比名字长短……的确,语文水平……

  • 0
    @ 2008-10-01 11:50:37

    比赛的时候AC

    再交95 TLE一个

    再交AC..........

    (还是同一服务器)

  • 0
    @ 2008-10-01 11:45:20

    编译通过...

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

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

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

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

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

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

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

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

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

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

    ├ 测试数据 11:答案正确... 9ms

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

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

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

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

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

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

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

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

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

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

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

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

    读入每个名字后不一定要倒过来读,遇到“woc” ,+5

  • 0
    @ 2008-10-01 11:41:34

    rpcow=考rp................

    我终于发现了...

  • 0
    @ 2008-10-01 11:27:32

    ├ 测试数据 16:答案错误... 

    ├ 标准行输出 245

     ├ 错误行输出 265

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

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

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

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

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

    Unaccepted 有效得分:95 有效耗时:0ms

    ??

    code:

    program cow_rp(input,output);

    const si='reioxzsj';

    var n,a,b,c,tops,topn,i,j:longint;

    x,t,top:ansistring;

    begin

    readln(n);

    for i:=1 to n do

    begin

    a:=0;b:=0;c:=0;

    readln(t);x:=t;

    if pos(si,t)>0 then

    begin

    while pos('woc',t)>0 do begin delete(t,pos('woc',t),3);inc(a); end;

    while pos('pr',t)>0 do begin delete(t,pos('pr',t),2);inc(a);inc(b);inc(c); end;

    while pos('r',t)>0 do begin delete(t,pos('r',t),1);inc(a); end;

    while pos('p',t)>0 do begin delete(t,pos('p',t),1);inc(b); end;

    if (a+b+4*c)>tops then begin tops:=(a+b+4*c);topn:=length(x);top:=x; end;

    if (a+b+4*c)=tops then if length(x)

  • 0
    @ 2008-10-01 10:51:15

    做好这题的关键:

    1、学好语文

    2、不要高估出题人的语文水平

    ………………

  • 0
    @ 2008-10-01 10:45:01

    本次模拟赛,,我很想哭。。

    我竟然以为牛的名字短再比较RP··

    谁知道是比较RP在看名字··

  • 0
    @ 2008-10-01 10:44:17

    不用开数组呃,读一个处理一个,处理中不要把'cow'改成'bird'...

    开始没看到要输出名字最短的...WA...

    program mony;

    var

    i,j,n,ans,s,rp:longint;

    na,x,ansna:ansistring;

    flog:boolean;

    begin

    readln(n);

    ans:=0;

    ansna:='';

    for i:=1 to n do

    begin

    readln(na);

    flog:=false;

    s:=0; rp:=0;

    for j:=1 to length(na)-7 do

    if na[j]='r' then

    begin

    x:=copy(na,j,8);

    if x='reioxzsj' then flog:=true;

    end;

    if flog then

    begin

    for j:=1 to length(na)-2 do

    if na[j]='w' then

    begin

    x:=copy(na,j,3);

    if x='woc' then inc(s);

    end;

    for j:=1 to length(na) do

    begin

    if na[j]='p' then

    begin

    inc(s);

    if na[j+1]='r' then inc(rp);

    end else

    if na[j]='r' then inc(s);

    end;

    if (ans

  • 0
    @ 2008-10-01 10:45:36

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    N个0分后的血泪成果啊。

    1.名字不要转换

    2.要rp最大的,且名字最短的牛,不仅是名字最短。

  • 0
    @ 2008-10-01 10:29:43

    请问哪儿错了??

    program ex1;

    const must='reioxzsj';

    var name:array[1..3000] of ansistring;

    s:ansistring;

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

    a,c:longint;

    tot,num,max:longint;

    function cheak(t:ansistring):boolean;

    begin

    cheak:=false;

    if pos(must,t)0 then cheak:=true;

    end;

    begin

    readln(n);

    for i:=1 to n do readln(name[i]);

    for i:=1 to n do

    if cheak(name[i]) then

    begin

    s:=name[i];

    x:=pos('woc',s);

    while x0 do

    begin

    delete(s,x,3);

    insert('drib',s,x);

    x:=pos('woc',s);

    end;

    for j:=1 to length(s) do

    begin

    if (s[j]='r') or (s[j]='p') then a:=a+1;

    end;

    for j:=1 to length(s)-1 do

    begin

    if (s[j]='p') and (s[j+1]='r') then c:=c+1;

    end;

    tot:=5*a+20*c;

    if tot>max then

    begin

    num:=i;

    max:=tot;

    end;

    if (tot=max) and (length(s)

  • 0
    @ 2008-10-01 10:29:21

    编译通过...

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

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

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

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

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

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

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

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

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

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

    ├ 测试数据 11:答案正确... 228ms

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

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

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

    ├ 测试数据 15:答案正确... 166ms

    ├ 测试数据 16:答案正确... 25ms

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

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

    ├ 测试数据 19:答案正确... 181ms

    ├ 测试数据 20:答案正确... 88ms

    C++ string模板,莫名其妙地AC了……比赛的时候错只是错在了无符号溢出,MMD下次记得无符号一定要变成有符号……

    我都是只输出一个名字,结果全过了。

    输入后先反转字符串,然后统计cow的个数,有n个cow那分数就加上5n,因为cow --> bird 只多了一个r,然后再统计r和p,同时注意如果出现r同时看一看下一位是不是p,如果是的话多加分,这里要多考虑边界的问题。

    于是算rp的代码就出来了。

    for(int j=0; j

  • 0
    @ 2008-10-01 10:28:16

    ansistring就好了..

    全部0ms.

  • 0
    @ 2008-10-01 10:55:33

    program cow1;

    var n,max,maxnum,i,k,j,tr,tp,trp:longint;

    nm,b,name:ansistring;

    t,lenmin:longint;

    a:array[1..3000]of longint;

    begin

    assign(input,'input.in');assign(output,'output.out');

    reset(input);rewrite(output);

    readln(n);

    max:=0;

    lenmin:=10000;

    for i:=1 to n do

    begin

    tr:=0;tp:=0;trp:=0;

    readln(nm);

    t:=pos('reioxzsj',nm);

    if t0 then

    begin

    t:=pos('woc',nm);

    while t0 do

    begin

    delete(nm,t,3);

    insert('dirb',nm,t);

    t:=pos('woc',nm);

    end;

    for j:=1 to length(nm) do

    begin

    if nm[j]='r' then tr:=tr+1;

    if nm[j]='p' then tp:=tp+1;

    if j1 then if ((nm[j]='r') and (nm[j-1]='p')) then trp:=trp+1;

    end;

    a[i]:=5*tr+5*tp+20*trp;

    if (a[i]>max) or ((a[i]=max) and (length(nm)

  • 0
    @ 2008-10-01 09:59:28

    严重鄙视出题者的语文水平~~~~

    害得我的通过率...

  • 0
    @ 2008-10-01 09:59:22

    居然会有大于两只的 RP 牛,!!

  • 0
    @ 2008-10-01 09:58:09

    chch...

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-01 10:01:55

    数组开300就WA死

    -,-

    开400瞬间AC

    B4自己..

    以后不能太吝啬数组大小

    -___|__=

    1.所有字符串都是反的,"rp"应该判断成"pr",为这个WA了好几次

    2.数组开大点..

    3.如果出现"woc",那么rp_val:=rp_val+5,因为变化以后比"woc"多了个"r"需要计算在内..

    PS.用cin,cout真的好慢-,-

    下面是求rp的函数,-1表示没rp-,-

    #include

    using namespace std;

    char ans[400],cow[400];

    int ansrp,minlen;

    int fun(char *c)

    {

    int i,ret=0;

    if(strstr(c,"reioxzsj")==NULL)return -1;

    for(i=0;i

  • 0
    @ 2008-10-01 09:54:46

    同样的程序,比赛时用的c++,5分。

    翻译成p,ac……

    两个程序拍了无数遍都没有不一样的。

    ---|---|---|---|--找到问题了---|---|---|--

    字串长度 > 300,数据跟题目描述不同,由于p用的是ansistring,所以没事。

    囧……

信息

ID
1454
难度
7
分类
字符串 | 模拟 点击显示
标签
(无)
递交数
2646
已通过
475
通过率
18%
被复制
2
上传者