上一页 1 ··· 54 55 56 57 58 59 60 61 62 ··· 83 下一页
摘要: 题意: 就是用最少的字符把原字符串补成回文串 解析: emm/。。。/网上都是用kmp和后缀数组做的 我没想到这俩的思路。。。emmm。。。 想到了exkmp的 就是原串和逆串匹配一下 注意要保证这个匹配的最大长度 要到原串的结尾 阅读全文
posted @ 2018-08-18 20:09 WTSRUVF 阅读(289) 评论(0) 推荐(0) 编辑
摘要: Relevant Phrases of Annihilation SPOJ - PHRASES https://cn.vjudge.net/problem/SPOJ-PHRASES 呵。。。呵。。。 我觉得我写的很对呀。。。 真是的。。。 这么漂亮。。。 行吧。。一下午没检查出来哪里有问题 真是的 阅读全文
posted @ 2018-08-18 18:06 WTSRUVF 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 题意: 求不小于字符串一半长度个字符串中的最长字串 解析: 论文题例11 将n个字符串连起来,中间用不相同的且没有出现在字符串中的字符隔开, 求后缀数组, 然后二分答案变为判定性问题, 然后判断每组的后缀是否出现在不小于 k 个的原串中, 这个做法的时间复杂度为O(nlogn) 阅读全文
posted @ 2018-08-18 12:35 WTSRUVF 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定两个字符串A 和 B, 求长度不小于 k 的公共子串的个数(可以相同) 分两部分求和sa[i-1] > len1 sa[i] < len1 和 sa[i-1] < len1 sa[i] > len1 阅读全文
posted @ 2018-08-18 09:59 WTSRUVF 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你两串字符,要你找出在这两串字符中都出现过的最长子串 解析: 先用个分隔符将两个字符串连接起来,再用后缀数组求出height数组的值,找出一个height值最大并且i与i-1的sa值分别在两串字符中就好了 阅读全文
posted @ 2018-08-17 21:39 WTSRUVF 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 后缀数组专题的 emm。。 就next 循环节。。/ 有后缀数组也可以做 从小到大枚举长度i,如果长度i的子串刚好是重复了len/i次,应该满足len % i == 0和rank[0] - rank[i] == 1(整个串的等级比 i位置开始的后缀的等级大1 (i位置开始的后缀即为比总串低一个等级的 阅读全文
posted @ 2018-08-17 18:44 WTSRUVF 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 求不重复的子串个数 用所有的减去height就好了 推出来的。。。 阅读全文
posted @ 2018-08-17 18:19 WTSRUVF 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题意: 求可重叠的最长重复子串,但有一个限制条件。。要至少重复k次 解析: 二分枚举k,对于连续的height 如果height[i] >= k 说明它们至少有k个元素是重复的,所以判断一下就好了 数据很水 输入数据可能为0,所以s[i]++ s[n++] = 0; 要后缀数组要保证末尾加的字符比前 阅读全文
posted @ 2018-08-17 17:21 WTSRUVF 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 求不可重叠最长重复子串 对于height[i]定义为sa[i]和 sa[i-1]的最长公共前缀 这个最长公共前缀的值肯定是最大的 证明: 设rank[j] < rank[k], 则不难证明后缀j和k的LCP的长度等于height[rank[j]+1], height[rank[j]+2],```, 阅读全文
posted @ 2018-08-17 11:19 WTSRUVF 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 参考: https://www.cnblogs.com/shanchuan04/p/5324009.html 首先铭记几个数组的含义 在看代码的时候一定要记住到底是什么意思 把含义写在纸上 一定要明确第一次循环以后x[i]和c[i]所代表的意义和第一次循环不同 sa[i] 排名为i的后缀第一关键字的 阅读全文
posted @ 2018-08-16 22:17 WTSRUVF 阅读(389) 评论(0) 推荐(0) 编辑
上一页 1 ··· 54 55 56 57 58 59 60 61 62 ··· 83 下一页