讨论 / Ask For Help P397
typhoon 2011-11-03 06:19:00
点我顶贴 收藏 删除
用了朴素的方法,后果是60分,望大牛指教

program tt;

var i,s:longint;

s1,s2:ansistring;

function pd(a,b:longint):boolean;

var i,j1,j2:longint;

begin

pd:=true;

j1:=ord(s1[1])-ord(s2[a]);

for i:=a+1 to b do begin

j2:=ord(s1[i-a+1])-ord(s2[i]);

if j2<>j1 then begin

pd:=false; exit;

end;

end;

end;

begin

readln(s1);

readln(s2);

for i:=1 to length(s2)-length(s1)+1 do

if pd(i,i+length(s1)-1) then inc(s);

if s=0 then begin writeln(’WZY died of twins!’); halt;

end else writeln(s);

for i:=1 to length(s2)-length(s1)+1 do

if pd(i,i+length(s1)-1) then writeln(i);

readln;

end.

题目编号:397-WZY学英语 查看该题

状态: Unaccepted

测评机: Xeost[5]

得分: 60分

提交日期: 2009-3-24 19:57:00

有效耗时: 1124毫秒

测试结果1: 通过本测试点|有效耗时156ms

测试结果2: 通过本测试点|有效耗时171ms

测试结果3: 通过本测试点|有效耗时172ms

测试结果4: 通过本测试点|有效耗时203ms

测试结果5: 通过本测试点|有效耗时204ms

测试结果6: 选手程序运行超过时限

测试结果7: 输出过长|用户输出数据超过标准输出两倍[标准输出4位|选手输出18位]

测试结果8: 选手程序运行超过时限

测试结果9: 输出过少|用户输出数据少于标准输出的50%[标准输出297780位|选手输出18位]

测试结果10: 通过本测试点|有效耗时218ms

#1 woshiniba@2009-03-24 06:00:00
回复 删除
你个装something between A and C 的东西 ,给我上QQ啊!

--------------■■完美的分割线■■--------------

致RQ道歉信

对不起,我忘记把学校的猪圈锁门了,结果楼主出来了。。。

#2 typhoon@2009-03-25 01:47:00
回复 删除
勿听楼上吠,楼上其实只是一个地点出了一点小问题,原谅他吧
#3 typhoon@2009-03-25 01:48:00
回复 删除
继续求救……
#4 wish@2009-03-25 02:15:00
回复 删除
朴素肯定不能满的啊

要用线性或亚线性匹配算法,如KMP

#5 Jollwish@2009-03-26 06:10:00
回复 删除
KMP还得有点小小的优化...不然常数弄26够呛的

数据很猥的

#6 xxwzy@2009-03-26 06:23:00
回复 删除
joll的本来就是猥;

交的本来就是尾。

#7 Fish、のTorres@2011-11-03 06:19:00
回复 删除
回复 地基xxwzy 的帖子

...

查看更多回复
提交回复