码迷,mamicode.com
首页 > 其他好文 > 详细

小本本

时间:2019-10-13 16:51:56      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:class   cpp   pre   直接   合并   mod   一个   线段   ++   

sam的线段树合并可直接这么写,和sa桶排求rk一个道理,只不过这个可以直接按照len合并。


for (R int i = 1; i <= len; i++)
  ins(ss[i]), T.Modify(rt[i], 1, tot, i);
for (R int i = 1; i <= tot; i++) c[t[i].len]++;
for (R int i = 1; i <= tot; i++) c[i] += c[i - 1];
for (R int i = 1; i <= tot; i++) rk[c[t[i].len]--] = i;
for (R int i = tot; i > 1; i--) rt[t[rk[i]].fail] = T.Merge(rt[t[rk[i]].fail], rt[rk[i]]);

小本本

标签:class   cpp   pre   直接   合并   mod   一个   线段   ++   

原文地址:https://www.cnblogs.com/cjc030205/p/11666945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!