上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 39 下一页
摘要: 51Nod-1469 淋漓尽致子串 (后缀自动机) 对于原串构造后缀自动机 我们只考虑$|endpos|>1$的状态 发现对于一个状态,只有其中最长的子串会产生贡献,否则会在$p_i-1$出产生冲突 对于最长串的$p_i-1$位置,如果$link/parent$树上的一个儿子的$|endpos|>1 阅读全文
posted @ 2020-01-20 11:07 chasedeath 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 51Node-1600 Simple KMP (后缀自动机+树剖线段树/LCT) 题面给人一种非常复杂的感觉 我们考虑每次加入一个字符,产生的每一个新的后缀的贡献 对于后缀$S_{x,i}$我们可以从$i-1$继承过来得到$S_{x,i-1}$的答案,只用考虑$i$的贡献 任意一个$S_{j,i}( 阅读全文
posted @ 2020-01-20 10:35 chasedeath 阅读(186) 评论(0) 推荐(0) 编辑
摘要: HDU-5470 Typewriter (后缀自动机优化dp) 这个$dp$有两种转移 1.\(dp[i-1]+cost[s[i]] \rightarrow dp[i]\) 2.\(dp[j]+(i-j) \cdot A+2 \cdot B \rightarrow dp[i]\) ( $s_{j+1 阅读全文
posted @ 2020-01-20 10:19 chasedeath 阅读(177) 评论(0) 推荐(1) 编辑
摘要: HDU-5343 MZL's Circle Zhou (后缀自动机) 题意:从$A,B$两串中各选出一个子串$x,y$(可以为空),求能构成的不同串的个数 为了避免重复统计,我们需要规定优先级 对于任意一个答案中的串,它的合法切分中,我们使得$|x|$最大 对于$A,B$分别构建后缀自动机 我们统计 阅读全文
posted @ 2020-01-20 10:01 chasedeath 阅读(121) 评论(0) 推荐(0) 编辑
摘要: HDU-4641 K-string (后缀自动机+线段树合并) 由于$k$是固定的,所以会比较方便 对于整个串构建后缀自动机 利用线段树合并离线求出每个点的$endpos$情况,找到第$k$个元素,那个元素以后的的位置都出现了$k$次,将它们的答案加上$len-len[link]$,最后累前缀和即可 阅读全文
posted @ 2020-01-20 09:49 chasedeath 阅读(160) 评论(0) 推荐(0) 编辑
摘要: HDU-6194 string string string(后缀自动机) 这个题用后缀自动机做真的简单 统计一下每个状态$|endpos|$是否等于$k$就能得到答案 #include<bits/stdc++.h> using namespace std; #define reg register 阅读全文
posted @ 2020-01-20 09:42 chasedeath 阅读(104) 评论(0) 推荐(0) 编辑
摘要: HDU-5853 Jong Hyok and String (广义后缀自动机) 题意:给定一些串,每次查询一个串,求所有的 (在所有串中$endpos$都与它相同的),(出现在给定串的)不同子串个数 广义后缀自动机? 是不是听起来很高大上? 博主当然不明白原理,但是mo有关系 对于处理多个串的子串问 阅读全文
posted @ 2020-01-20 09:32 chasedeath 阅读(149) 评论(0) 推荐(1) 编辑
摘要: HDU-4416 Good Article Good sentence (后缀自动机) 题意:给定一个串$A$和若干串$B_i$,求出现在$A$中且不出现在$B$中的子串个数 这个题我们不能把$B_i$接在一起做,会直接MLE! 对于$A$构建$SAM$ 考虑对于每个$B_i$把出现在$B_i$中的 阅读全文
posted @ 2020-01-20 09:21 chasedeath 阅读(116) 评论(0) 推荐(0) 编辑
摘要: LOJ-2033.[SDOI2016]生成魔咒 (后缀自动机) 直接一点就后缀自动机了。。。 注意要开$map$存储状态转移 每次加入一个新的字符就加上新的状态的子串数量$len[new]-len[link[new]]$ #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-01-20 09:08 chasedeath 阅读(130) 评论(0) 推荐(0) 编辑
摘要: POJ-3693 Maximum repetition substring (后缀数组) 题意:求连续重复次数最多的子串 一个连续重复子串可以描述为$l,r,len$(端点,循环节长度) \(O(n^2)\):直接枚举$l,len$,然后求$l$和$l+len$的$LCP$,就能得到最大的$r$ 考 阅读全文
posted @ 2020-01-19 15:16 chasedeath 阅读(86) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 39 下一页