标签:集合 准备 size 问题: 等价 不同 href 二分 线段树
目录
来填之前的坑了。。。考后大概会做做有字符串的综合题吧
lcs板子,对于第一个串建出SAM,第二个串在上面跑,即可求出对于每一个位置的后缀的最大匹配长度
n串lcs板子,对于每个节点去min即可,但是要注意到当前答案对parent子树上儿子答案取max
上面的那个改个多组数据,水水经验 (两分钟获得快乐不是很划算吗
上面那个的变形,加个差分,数据贼小,输入处理有 丶难敲
如何求出每个点的right集合大小? dfs求size即可,对于原串上的点sz初值为1
也可以基数排序求出拓扑序然后倒序求
此题中对于被禁止的点sz处理一下就行了
对于每个点,算多次的sz为right集合大小,算一次的sz为1
然后像平衡树上那样递归找就行了,复杂度O(n)
考虑\(parent\)树上每条边的边权赋为\(len(i)-len(fa_i)\),这样两个节点的贡献就是他们到lca的路径权值和,答案是所有路径权值和
然后考虑有多少条路径经过当前边就可以了
考虑二分答案,即为前缀长度,倍增到对应的SAM的点,check一下当前点的endpos是否有包含[a,b],在parent树上线段树合并预处理出来即可
考虑把两个拼接起来,parent树上每个节点代表一些字符串,且他们出现的位置是等价的
就可以记录一下在A/B中出现的位置然后统计一下
先考虑一个问题:如何用SAM求本质不同的子串个数?
和上面差不多,在parent树上每个点代表一些字符串,且不会重复,每次新加入的点算一下就可以了,拆点不会影响答案
注意此题字符集比较大,用map存出边
trie树上SAM,参考刘研绎在2015年写的国集论文
要准备NOIP了(悲
就是每次把last拉到1
标签:集合 准备 size 问题: 等价 不同 href 二分 线段树
原文地址:https://www.cnblogs.com/lcyfrog/p/11650168.html