随笔分类 -  字符串

摘要:1 var s,t:ansistring; 2 n,op:longint; 3 p:array[0..2000008] of longint; 4 procedure pre; 5 var i:longint; 6 begin 7 s:='$*'; 8 for i:=1 to length(t) do 9 begin 10 ... 阅读全文
posted @ 2015-05-18 17:35 rpSebastian 阅读(198) 评论(0) 推荐(0)
摘要:AC自动机模板题。 被卡内存了 死活A不掉。。 AC自动机参考教程: http://www.cppblog.com/menjitianya/archive/2014/07/10/207604.html 阅读全文
posted @ 2015-05-08 10:49 rpSebastian 阅读(205) 评论(0) 推荐(0)
摘要:var s:ansistring; cas:longint; function minp(st,len:longint):longint; var p1,p2,k,tmp:longint; begin p1:=0; p2:=1; k:=0; while ((p1p2) then exit(p2+st) else exit(p1+st); end; begin re... 阅读全文
posted @ 2015-04-28 10:19 rpSebastian 阅读(234) 评论(0) 推荐(0)
摘要:const maxn=600008; len=24; var x,y,z,n,m,tot,lx,i:longint; sum:array[0..maxn] of longint; rt:array[0..maxn] of longint; time,l,r:array[0..maxn*len] of longint; ch:char; procedur... 阅读全文
posted @ 2015-03-20 16:59 rpSebastian 阅读(203) 评论(0) 推荐(0)
摘要:由于权值是在边上,所以很容易发现一个性质:d(x,y)=d(x,root) xor d(y,root)。 因为有了这个性质,那么就很好做了。对于每一个点统计到root的距离,记为f 数组。 将f数组里的每个值插进按照二进制位插进字典树里面。 枚举每一个点,然后在字典树中搜索最大的xor值就可以了。 阅读全文
posted @ 2014-12-16 20:45 rpSebastian 阅读(288) 评论(0) 推荐(0)
摘要:直接用Trie树即可。 每个节点统计经过该点的单词数,遍历时当经过的单词数为1时即为合法的前缀。 阅读全文
posted @ 2014-12-15 21:02 rpSebastian 阅读(124) 评论(0) 推荐(0)