//目录

随笔分类 -  ACM——KMP

摘要:题意:求每一个前缀,跟前缀相同的每个子串。 此题:网上很多都是假程序,不过也AC了,的确我测试几个案例之后的的确确是存在这个问题。 分析:每一个前缀,可以考虑KMP,f失配指针,如何求得它出现了多少次呢? 如果f > 0 ,至少这个前缀是符合的,但是,你会少算一些,例如: 你会少算子串a,怎么弥补回 阅读全文
posted @ 2017-10-28 21:47 小草的大树梦 阅读(159) 评论(0) 推荐(1) 编辑
摘要:AC自动机 UVa 11468 题意:给一些字符和各自出现的概率,在其中随机选择L次,形成长度为L的字符串S,给定K个模板串,求S不包含任意一个串的概率。 首先介绍改良版的AC自动机: 传统的AC自动机,是当一个字符失配时,根据失配函数转移到指定地方,而这个失配函数,是通过一个宽搜的过程形成的,这时 阅读全文
posted @ 2017-09-20 20:53 小草的大树梦 阅读(309) 评论(0) 推荐(0) 编辑
摘要:暴力枚举大水题,判断回文,扩展KMP 阅读全文
posted @ 2017-09-01 10:00 小草的大树梦 阅读(188) 评论(0) 推荐(0) 编辑
摘要:有两个S,T串,扩展KMP求,每一个S串的后缀和T串的最长公共前缀长度。 详细介绍:https://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html 简单介绍一下: 扩展KMP,通过先处理T串next数组,然后用同样的方法去处理S,T; 具体意义: 阅读全文
posted @ 2017-08-22 00:20 小草的大树梦 阅读(201) 评论(0) 推荐(0) 编辑
摘要:题意:给一个字典,看这个字典中匹配最多次数的是哪个单词(可以有多个)。 分析: AC自动机就是用来解决多模式匹配问题的工具。 模板用的lrj的,相比HDU 2222,动态开辟字典树。用last数组统计字典。 统计每一个单词匹配的次数cnt[],下标唯一对应val,最后遍历一遍cnt。 阅读全文
posted @ 2017-08-21 11:34 小草的大树梦 阅读(134) 评论(0) 推荐(0) 编辑
摘要:AC自动机模板题。 什么是Fai指针,指向出现了的最长后缀。 怎么统计,匹配到了模式串,但是,是仅仅一个当前的节点数吗? 不是的,还要继续往Fail指针上走,统计所有的cnt之和。 这个题目设计到,每个模式串只能用一次,在Fail树中,统计过的,要归0; 自动机第一次理解,谢谢卿学姐的视频资料。 阅读全文
posted @ 2017-08-18 11:32 小草的大树梦 阅读(142) 评论(0) 推荐(0) 编辑
摘要:题意:给定一个字符串,求他每一个前缀,如果他是周期的,求len/最短循环节。 分析: 复习一下KMP,之前有详细解析。 由于朴素匹配每次移动一位,KMP可以多移动 f[i] 位,f 就是失配函数,失配函数怎么得到,是通过模式串自己匹配自己得到。 地推 f[i+1] ,如果 i+1 失配,那么先看前一 阅读全文
posted @ 2017-07-19 11:16 小草的大树梦 阅读(163) 评论(0) 推荐(0) 编辑
摘要:题意:很Uva项链题目类似。 区别: 1、字符串很多,用map hash超时,用Trie查找。 2、DFS判断连通,和并查集判连通,被我写错的地方时,查森林的时候,还是要Find_Set。 1 #include <iostream> 2 #include <cstring> 3 #include < 阅读全文
posted @ 2017-07-18 15:59 小草的大树梦 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://vjudge.net/contest/166647#problem/A 题意: 从一些字符串集合里面挑一子集,然后公共前缀长度*字符串个数最大; 分析: 将这些字符串放到一个字典树中,每个节点作为公共前缀(长度)*个数(边插入,边累加) 1 #include <bits/s 阅读全文
posted @ 2017-06-12 21:06 小草的大树梦 阅读(286) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1031 1031: [JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法 :把需 阅读全文
posted @ 2017-05-08 21:28 小草的大树梦 阅读(318) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://vjudge.net/contest/142513#problem/A 题意:给出一些字符和各自对应的选择概率,随机选择L次后将得到一个长度为L的随机字符串S.给出K个模版串,计算S不包含任何一个串的概率. 分析: 在构造好的AC自动机里面,每随机生成一个字母,相当于在AC自 阅读全文
posted @ 2016-11-21 22:23 小草的大树梦 阅读(304) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hust.edu.cn/problem/show/1010 KMP失配指针的利用: next数组前缀和后缀最长公共长度,这样len - next[len];就是最短的循环节点。 #include <stdio.h> #include <string.h> using 阅读全文
posted @ 2016-10-10 23:45 小草的大树梦 阅读(185) 评论(0) 推荐(0) 编辑
摘要:今天上数据结构的时候,老师讲了一下KMP,之前也接触过,记一下KMP的思想。参考了一些博客,等一下附上。 匹配两个字符串的时候,每次当失配的时候,都移动F串一位。所以时间复杂度是O(n*m); 但是当我匹配到I的时候,我忽略了前面的都已经匹配好了这个事实,利用起来。多移动一些K,K有什么特点呢? 例 阅读全文
posted @ 2016-10-10 20:35 小草的大树梦 阅读(312) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=282&page=show_problem&problem=1943 差点就被这个题目RE疯掉(ノへ ̄、)。 字典树: 阅读全文
posted @ 2016-10-08 21:29 小草的大树梦 阅读(232) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=1572 输入数据时要注意,这里是string型 用getline(cin,origin[i]); 阅读全文
posted @ 2016-06-20 18:32 小草的大树梦 阅读(209) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=5 暴力: STL: KMP 阅读全文
posted @ 2016-03-26 14:06 小草的大树梦 阅读(484) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示