首页 > 分享 > seek

seek

最新推荐文章于 2022-11-10 14:24:21 发布

huangja 于 2017-02-17 19:49:46 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

1536. seek (Standard IO)

Time Limits:  1000 ms  Memory Limits:  65536 KB  Detailed Limits  

Goto ProblemSet

Description

俗话说“好命不如好名”,小h准备给他的宠物狗起个新的名字,于是他把一些英文的名字全抄下来了,写成一行长长的字符串,小h觉得一个名字如果是好名字,那么这个名字在这个串中既是前缀,又是后缀,即是这个名字从前面开始可以匹配,从后面开始也可以匹配,例如abc在 abcddabc中既是前缀,也是后缀,而ab就不是,可是长达4*10^5的字符让小h几乎昏过去了,为了给自己的小狗起个好名字,小h向你求救,并且他要求要将所有的好名字的长度都输出来。

Input

一行,要处理的字符串(都是小写字母)。

Output

一行若干个数字,从小到大输出,表示好名字的长度。

Data Constraint

var

a,b,c,ans:longint;

s:ansistring;

v,r:array[0..400000]of longint;

begin

//assign(input,'1.in');reset(input);

readln(s);

inc(ans);

r[ans]:=length(s);

for a:=2 to length(s)-1 do

begin

while (b>0)and(s[b+1]<>s[a]) do

b:=v[b];

if s[b+1]=s[a] then

begin

v[a]:=b+1;

inc(b);

end;

b:=v[a];

end;

v[0]:=-1;

while b>-1 do

begin

if s[b+1]=s[length(s)] then

begin

inc(ans);

r[ans]:=b+1;

end;

b:=v[b];

end;

for a:=ans downto 1 do

begin

write(r[a]);

if a<>1 then write(' ');

end;

close(input);

end.


相关知识

捉迷藏 Hide and Seek
touch炫舞情侣名 touch情侣名字推荐
正强化和负强化:概念、争议与神经机制
英语听力练习高级训练14:托人照看宠物
汉欧宠物食品公司狗猫粮罐头火腿代加工
#魔兽世界# 终...
甲氧氯
宠物正方观点指导
新北区:江苏省首个导盲犬训练基地在常成立
【图片】(原创

网址: seek https://m.mcbbbk.com/newsview756950.html

所属分类:萌宠日常
上一篇: 猫用英语怎么写?
下一篇: 主人说小狗瘫痪要安乐死,兽医检查