129 条题解
-
0xbox LV 3 @ 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 -
02008-10-01 12:21:50@
tiger测AC
lora temper测90。。
这题果然RP题 -
02008-10-01 12:18:40@
而且以为是只比名字长短……的确,语文水平……
-
02008-10-01 11:50:37@
比赛的时候AC
再交95 TLE一个
再交AC..........
(还是同一服务器)囧
-
02008-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 -
02008-10-01 11:41:34@
rpcow=考rp................
我终于发现了... -
02008-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) -
02008-10-01 10:51:15@
做好这题的关键:
1、学好语文
2、不要高估出题人的语文水平………………
-
02008-10-01 10:45:01@
本次模拟赛,,我很想哭。。
我竟然以为牛的名字短再比较RP··
谁知道是比较RP在看名字··
-
02008-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 -
02008-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最大的,且名字最短的牛,不仅是名字最短。 -
02008-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) -
02008-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:答案正确... 88msC++ string模板,莫名其妙地AC了……比赛的时候错只是错在了无符号溢出,MMD下次记得无符号一定要变成有符号……
我都是只输出一个名字,结果全过了。
输入后先反转字符串,然后统计cow的个数,有n个cow那分数就加上5n,因为cow --> bird 只多了一个r,然后再统计r和p,同时注意如果出现r同时看一看下一位是不是p,如果是的话多加分,这里要多考虑边界的问题。
于是算rp的代码就出来了。
for(int j=0; j -
02008-10-01 10:28:16@
ansistring就好了..
全部0ms. -
02008-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) -
02008-10-01 09:59:28@
严重鄙视出题者的语文水平~~~~
害得我的通过率... -
02008-10-01 09:59:22@
居然会有大于两只的 RP 牛,!!
-
02008-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 -
02008-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 -
02008-10-01 09:54:46@
同样的程序,比赛时用的c++,5分。
翻译成p,ac……
两个程序拍了无数遍都没有不一样的。---|---|---|---|--找到问题了---|---|---|--
字串长度 > 300,数据跟题目描述不同,由于p用的是ansistring,所以没事。
囧……