博客园 首页 私信博主 显示目录 隐藏目录 管理 动画
摘要: "题目链接" $Description$ 求两个字符串长度不小于k的公共子串对数。 $Solution$ 求出ht[]后先减去k,这样对于两个后缀A',B',它们之间的贡献为min{ht(A)}(A'到B'ht[]的最小值)。 维护一个栈,栈中ht从底到顶递减。 如果当前是求B中后缀i和前边A中子串 阅读全文
posted @ 2018-03-14 21:56 SovietPower 阅读(212) 评论(0) 推荐(0) 编辑
摘要: "题目链接 POJ2774" "SPOJ1811 LCS Longest Common Substring" 比 "后缀自动机" 慢好多(废话→_→)。 $Description$ 求两个字符串最长公共子串 $Solution$ 任何一个子串一定是某个后缀的前缀 可以将两个字符串拼在一起,中间用一个 阅读全文
posted @ 2018-03-14 19:55 SovietPower 阅读(196) 评论(0) 推荐(0) 编辑
摘要: "题目链接" $Description$ 给定一段数字序列(Ai∈[1,88]),求最长的两个子序列满足: 1.长度至少为5 2.一个子序列可以通过全部加或减同一个数来变成另一个子序列 3.两个子序列没有重叠部分 $Solution$ 求不重叠最长重复子序列: SA: 首先二分k,判断是否存在长度为 阅读全文
posted @ 2018-03-14 17:54 SovietPower 阅读(257) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 论找到一个好的教程的正确性。。 "后缀数组" 下标从1编号: cpp //299ms 2560kb include include include const int N=1e5+5; int n,sa[N],rk[N],sa2[N],tm[N],ht[N]; char s[N]; v 阅读全文
posted @ 2018-03-14 14:54 SovietPower 阅读(231) 评论(0) 推荐(0) 编辑