上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 85 下一页
摘要: 1、什么是逆序数? 2、用树状数组求逆序数的总数 2.1该背景下树状数组的含义 2.2如何使用树状数组求逆序数总数 2.3 C++实现代码 1、什么是逆序数? 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序数的总数就是这个排列的逆序数 阅读全文
posted @ 2018-08-19 10:55 WTSRUVF 阅读(677) 评论(0) 推荐(0)
摘要: 题意: 就是用最少的字符把原字符串补成回文串 解析: emm/。。。/网上都是用kmp和后缀数组做的 我没想到这俩的思路。。。emmm。。。 想到了exkmp的 就是原串和逆串匹配一下 注意要保证这个匹配的最大长度 要到原串的结尾 阅读全文
posted @ 2018-08-18 20:09 WTSRUVF 阅读(300) 评论(0) 推荐(0)
摘要: Relevant Phrases of Annihilation SPOJ - PHRASES https://cn.vjudge.net/problem/SPOJ-PHRASES 呵。。。呵。。。 我觉得我写的很对呀。。。 真是的。。。 这么漂亮。。。 行吧。。一下午没检查出来哪里有问题 真是的 阅读全文
posted @ 2018-08-18 18:06 WTSRUVF 阅读(355) 评论(0) 推荐(0)
摘要: 题意: 求不小于字符串一半长度个字符串中的最长字串 解析: 论文题例11 将n个字符串连起来,中间用不相同的且没有出现在字符串中的字符隔开, 求后缀数组, 然后二分答案变为判定性问题, 然后判断每组的后缀是否出现在不小于 k 个的原串中, 这个做法的时间复杂度为O(nlogn) 阅读全文
posted @ 2018-08-18 12:35 WTSRUVF 阅读(210) 评论(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 阅读(279) 评论(0) 推荐(0)
摘要: 题意: 给你两串字符,要你找出在这两串字符中都出现过的最长子串 解析: 先用个分隔符将两个字符串连接起来,再用后缀数组求出height数组的值,找出一个height值最大并且i与i-1的sa值分别在两串字符中就好了 阅读全文
posted @ 2018-08-17 21:39 WTSRUVF 阅读(326) 评论(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 阅读(142) 评论(0) 推荐(0)
摘要: 求不重复的子串个数 用所有的减去height就好了 推出来的。。。 阅读全文
posted @ 2018-08-17 18:19 WTSRUVF 阅读(181) 评论(0) 推荐(0)
摘要: 题意: 求可重叠的最长重复子串,但有一个限制条件。。要至少重复k次 解析: 二分枚举k,对于连续的height 如果height[i] >= k 说明它们至少有k个元素是重复的,所以判断一下就好了 数据很水 输入数据可能为0,所以s[i]++ s[n++] = 0; 要后缀数组要保证末尾加的字符比前 阅读全文
posted @ 2018-08-17 17:21 WTSRUVF 阅读(192) 评论(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 阅读(154) 评论(0) 推荐(0)
上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 85 下一页