上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 83 下一页
摘要: 嘟嘟嘟 这个和某谷的AC自动机模板简单版差不多。 但还是要注意几点的: 1.这个是统计出现次数,而不是是否出现,所以在查询的时候加上这个节点的val后,不能把val标记为-1。那么也就可以说查询的时间复杂度能比简单版的稍微第一慢一点。 2.考虑k个一样的模式串:刚开始我想的是每一个节点开一个vect 阅读全文
posted @ 2018-10-10 19:32 mrclr 阅读(243) 评论(1) 推荐(0) 编辑
摘要: 对于已经学了3,4遍kmp的我,竟然感觉AC自动机不太难。 kmp是解决单模式串匹配的问题,就是只能判断一个字符串是否为另一个字符串的子串。AC自动机是解决多模式串匹配的问题,能判断多个字符串是否同是为一个字符串的子串。 先从最暴力的想法入手:首先肯定要把所有模式串建成一棵trie树,然后枚举查询字 阅读全文
posted @ 2018-10-10 17:59 mrclr 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 题面:把一句话加密:1.所有字母变成小写。2.翻转所有单词。3.去掉空格。然后给你一句加密后的字符串以及一些出现在原句和没有出现在原句的单词,让你还原原句。注意,每一个单词可以使用多次,如果有多个答案,输出其中任意一个。 trie树好题…… 首先都能想到的是把所有单词建成一棵trie树,然后 阅读全文
posted @ 2018-10-10 16:21 mrclr 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 刚开始我以为要用模板串建trie树,发现m只有100,而n有100000,所以应该用带符号的串建树。 然后模板串的长度很小,所以在trie树上dfs即可。 这道题串可能有重,比如有一个t?k和t?k,应该输出2和3。而且因为*可以是空字符,所以,对于每一个询问的答案也应该去重。 1 #inc 阅读全文
posted @ 2018-10-10 12:44 mrclr 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 我们可以把AB看成S,则要找的串可以写成SSSSA或者SSSSS。假设S出现了Q次,那么A出现了Q % k次,则B出现了 Q / k - Q % k次. 当ABABA是SSS的形式时,B可以为空字符,判断Q / k - Q % k>=0。 当ABABA是SSA的形式时,判断Q / k - Q 阅读全文
posted @ 2018-10-10 10:50 mrclr 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 用kmp求最短循环节出现的次数,失配数组的妙用。 不想画图了~~ 举个栗子,s = "ababab",则f[6] = 4,即s[1~4] == s[3~6],全写出来就是s[1] = s[3]. s[2] = s[4], s[3] = s[5], s[4] = s[6],然后就发现这些等式有 阅读全文
posted @ 2018-10-10 08:57 mrclr 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 今天又学了一遍kmp,总算是理解了。虽然这就是一道板子题,但我还想叨叨一会儿。 kmp匹配的大致过程就是对于主串A,我们总想让A[i - j + 1 ~ i]和模式串B的最长前缀B[j]相等。匹配的时候如果A[i]和B[j + 1]不等,就把j = f[j],因为f[j]是保证了A[j - 阅读全文
posted @ 2018-10-10 08:15 mrclr 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一道比较经典的欧拉回路的题。 首先n最大为C(2, 52),所以用邻接矩阵存图最好,这样还能保证得到的欧拉路径字典序最小。 对于每个字母对,就连一条无向边。然后跑欧拉路径或回路即可。 刚开始我只判了欧拉回路,忘记还可能存在欧拉路径,于是WA了几发。 1 #include<cstdio> 2 阅读全文
posted @ 2018-10-10 07:13 mrclr 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 正如题目所述,这就是一道板子题。 不过身为一道板子题,数据还是非常负(du)责(liu)的。 一点点讲。 1.判断欧拉图 判断无向图是欧拉图就是所有点的度数都是偶数;判断有向图是欧拉图就是所有点的入度等于出度。 但是仅这样是不行的,还有判断图是否连通。这个可以用并查集实现。或者是看dfs经过 阅读全文
posted @ 2018-10-09 23:02 mrclr 阅读(232) 评论(0) 推荐(1) 编辑
摘要: 嘟嘟嘟 今天学了个欧拉回路~ 理解起来感觉不是很难,证明竟然也看懂了。 首先,得认识这么几个名词: 1.欧拉路径:图中存在一条从s到t的路径,使这条路径经过了所有的边,且每条边之经过一次。简单来说就是这张图可以一笔画出来. 2.欧拉回路:就是欧拉回路中s == t。 3.欧拉图:存在欧拉回路的图。 阅读全文
posted @ 2018-10-09 19:13 mrclr 阅读(546) 评论(0) 推荐(0) 编辑
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 83 下一页