摘要: https://www.lydsy.com/JudgeOnline/problem.php?id=3413 显然答案等于模式串si和模板串的每一个后缀的匹配长度之和。 这里忽略了匹配成功的情况,那种情况只需要额外特判一些东西。 显然可以用线段树合并维护出right集合。 按照要求查询即可。 cpp 阅读全文
posted @ 2019-01-04 21:42 Creed-qwq 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 考虑设答案的生成函数为f。 考虑给定权值的生成函数设为g。 列一下方程: f^2 g+1=f 这里解释一下,f^2代表的是左右两个儿子,乘上一个g代表根节点。补上一项树为空集的1即可。 解一下这个一元二次方程。 然后用一些多项式的运算根据f求出g即可。 阅读全文
posted @ 2019-01-04 20:58 Creed-qwq 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 发现答案由所有完整的排列和某些两个相邻的排列构成。 考虑两个相邻排列的贡献。 如果它们的lcp为k的话,画图可发现,此时一共有k个位置可以形成排列。 考虑计算lcp为k的相邻排列有多少对。 发现这个式子是可以推出来的的,枚举lcp求解即可。 cpp include include include i 阅读全文
posted @ 2019-01-04 20:43 Creed-qwq 阅读(149) 评论(0) 推荐(0) 编辑