摘要: 题目大意:求两个字符串的最长公共子串长度 把两个串接在一起,中间放一个#,然后求出height 接下来还是老套路,二分出一个答案ans,然后去验证,如果有连续几个位置的h[i]>=ans,且存在sa[i]的最大值在第二个串里,最小值在第一个串里,说明答案成立 别再把后缀数组敲错了 阅读全文
posted @ 2018-09-25 16:31 guapisolo 阅读(117) 评论(0) 推荐(0)
摘要: 题目大意:求可重叠的相同子串数量至少是K的子串最长长度 洛谷传送门 依然是后缀数组+二分,先用后缀数组处理出height 每次二分出一个长度x,然后去验证,在排序的后缀串集合里,有没有连续数量多于K个串的长度>=x, 但据说有一种高端做法是把二分换成单调队列,能减少常数,可惜我并没有看懂...... 阅读全文
posted @ 2018-09-24 22:51 guapisolo 阅读(145) 评论(0) 推荐(0)
摘要: 洛谷P2743传送门 题目大意:给你一个序列,求其中最长的一对相似等长子串 一对合法的相似子串被定义为: 1.任意一个子串长度都大于等于5 2.不能有重叠部分 3.其中一个子串可以在全部+/-某个值后和另一个串完全相同 还是老套路了,其实只要求出每一项和前一项的差值序列,这样第三个问题可以被转化为求 阅读全文
posted @ 2018-09-24 22:50 guapisolo 阅读(143) 评论(0) 推荐(0)
摘要: 题目大意:略 由于字符集大,要用map维护Trie树 并不能用AC自动机的Trie图优化,不然内存会炸 所以我用AC自动机暴跳fail水过的 显然根据喵星人建AC自动机是不行的,所以要根据问题建 然而这题有一些很艮的地方: 1.如果一个喵的名和姓都被点到,那他只被点到了一次 2.询问的串可能相同 3 阅读全文
posted @ 2018-09-24 22:49 guapisolo 阅读(178) 评论(0) 推荐(0)
摘要: 题目大意:给你一堆字符串,一个串不合法的条件是这些字符串中任意一个是这个串的子串,求合法的串的数量 其实这道题比 [HNOI2008]GT考试 那道题好写一些,但道理是一样的 只不过这道题的答案可以转化为 所有可能的字符串(26^m)数量 - 不合法的字符串数量 定义f[i][j]表示匹配到了第i个 阅读全文
posted @ 2018-09-24 22:47 guapisolo 阅读(172) 评论(0) 推荐(0)
摘要: 恢复内容开始 题目大意:给定一个由数字构成的字符串A(len<=20),让你选择一个长度为n(n是给定的)字符串X,一个合法的字符串X被定义为,字符串X中不存在任何一段子串与A完全相同,求互不相同的合法的字符串L的数量 第一眼看就没啥思路....瞅了一眼题解,是KMP优化DP,然后再用矩阵优化DP 阅读全文
posted @ 2018-09-24 22:46 guapisolo 阅读(202) 评论(0) 推荐(0)
摘要: 题目大意:略(太长了不好描述) 良心LOJ传送门 先对所有被打印的字符串建一颗Trie树 观察数据范围,并不能每次打印都从头到尾暴力建树,而是每遍历到一个字符就在Trie上插入这个字符,然后记录每次打印后字符串最后一个字符在Trie树上的位置 然后建立AC自动机,再建立Fail树。注意还要另外存一下 阅读全文
posted @ 2018-09-24 22:44 guapisolo 阅读(173) 评论(0) 推荐(0)
摘要: 题目大意:两个人从2~n中随意取几个数(不取也算作一种方案),被一个人取过的数不能被另一个人再取。两个人合法的取法是,其中一个人取的任何数必须与另一个人取的每一个数都互质,求所有合法的方案数 (数据范围毕竟很小,乍一看也不是啥打表找规律的题) 和我之前做过的一道题很类似hdu 6125,但这道题由于 阅读全文
posted @ 2018-09-24 22:43 guapisolo 阅读(180) 评论(0) 推荐(0)
摘要: 题目大意:太长了,略 Kruskal重构树,很神奇的一个算法吧 如果两个并查集被某种条件合并,那么这个条件作为一个新的节点连接两个并查集 那么在接下来的提问中,如果某个点合法,它的所有子节点也都合法,即子节点的限制少于父节点 阅读全文
posted @ 2018-09-24 22:42 guapisolo 阅读(181) 评论(0) 推荐(0)
摘要: NTT裸模板,没什么好解释的 这种高深算法其实也没那么必要知道原理 阅读全文
posted @ 2018-09-24 22:41 guapisolo 阅读(366) 评论(0) 推荐(0)