摘要: 二分答案,(具体可见http://blog.csdn.net/neither_nor/article/details/51669114),然后就是判定问题,sa和sam都可以做,用sam写了一下,先用sam建后缀树,然后用主席树维护right集合就好了,每次判断把对应节点倍增到深度为mid的点,然后 阅读全文
posted @ 2018-01-31 18:17 湮灭之瞳 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 因为题目中树的特殊性暴力dfs建sam就好了。然后sam有一个有意思的性质是一个点代表的子串个数等于mx[i]-mx[fail[i]],至于为什么,我不会严谨的证明,但想想还是可以的,就是当前串的所有后缀减去前面已经表示过的后缀吗。其实这个个数也可以一个dp跑出来的,只不过这种方法更卓越。 阅读全文
posted @ 2018-01-31 10:46 湮灭之瞳 阅读(96) 评论(0) 推荐(0) 编辑