AC_automata
Drenight
Dream in the night.
展开
-
AC_Automata模板
#include using namespace std; #define ll long long int ans=0; const int maxnode=1e6+7; const int sigma_size=26; struct AC_Automata { int ch[maxnode][sigma_size]; int val[maxnode];原创 2017-05-22 22:25:50 · 213 阅读 · 0 评论 -
Rikka with String HDU - 6086 多校#5 AC自动机DP
有之前的铺垫这题感觉好做多了。。 跟之前不同的就在于对称轴节点要特殊标记 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define ull unsigned原创 2017-08-21 19:37:07 · 291 阅读 · 0 评论 -
DNA repair HDU - 2457 自动机DP
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define ull unsigned long long #define pb push_back #define原创 2017-08-20 22:34:06 · 178 阅读 · 0 评论 -
Ring HDU - 2296 AC自动机DP路径记录
构造n长串,若含有模板串x可获得a[x]的价值,同价值取字典序最小,输出路径 dp[i][j]表示长度i转移态j的最大价值,对应一个path[i][j]记录路径 #include #include #include #include #include #include #include #include #include #include #include using namespace st原创 2017-08-20 21:55:35 · 280 阅读 · 0 评论 -
A Secret HDU - 6153 TLE的AC自动机解法
赛中听说反转之后是前缀匹配就想敲自动机了,还好没真做 赛后试了下自动机,居然真T了,删了可惜存一下吧。。。、 回去看看自动机复杂度吧。。。 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define原创 2017-08-20 19:58:06 · 327 阅读 · 0 评论 -
Wireless Password HDU - 2825 AC自动机DP计数
给m个单词,问构造长为n且含有至少k个单词的串的种数 朴素的自动机上DP,遍历了自动机的所有状态,dp[i][j][k]:长为i的串匹配到状态j,出现k编码状态word的串的种数 #include #include #include #include #include #include #include #include #include #include #include using nam原创 2017-08-18 22:33:39 · 192 阅读 · 0 评论 -
考研路茫茫——单词情结 HDU - 2243 AC自动机/特征字符串构造计数/等比矩阵求和
细节都在注释里了,这条跟上一条挺像的,都是用自动机构造转移矩阵, 还是那个要点:trie图上u号节点转移到v号节点时,如果形成特征串就在矩阵的mat[u][v]+1 #include #include #include #include #include #include #include #include #include #include #include using namespace原创 2017-08-18 21:36:19 · 170 阅读 · 0 评论 -
DNA Sequence POJ - 2778 AC自动机构造矩阵
构建一个长度为n的串s,不能包含模板串,问一共多少种s 把所有病毒节点和以病毒节点为后缀的节点标为病毒节点 从编号i的节点走到j时,如果i,j都不是病毒节点,这样的走法才是安全的,mat[i][j]++ 其他就是一些矩阵的知识了 #include #include #include #include #include #include #include #include #include原创 2017-08-17 23:48:31 · 194 阅读 · 0 评论 -
HDU 6138 Fleet of the Eternal Throne 多校#8 AC自动机
给n个串,每次询问x号串和y号串的最长公共子串的长度,这个子串必须是n个串中某个串的前缀 做法是把n个串建成AC自动机,前缀树中每个节点都当做结尾节点,val赋为trie树深度 然后把x串丢进自动机里,把匹配到的前缀节点染个色,再把y串丢进去,遇到同样颜色的前缀节点就更新一下答案 #include #include #include #include #include #include #i原创 2017-08-17 22:05:58 · 280 阅读 · 0 评论 -
病毒侵袭 HDU - 2896 newnode型自动机
题意: 含有特征串的字符串有病毒,给一堆特征串,按顺序判定一组字符串是否有病毒 代码: #include using namespace std; #define ll long long const int maxn=1e4+7; const int maxm=210; const int maxnode=205*500; const int sigma=98; char ori[max原创 2017-05-23 00:21:00 · 212 阅读 · 0 评论 -
String HDU - 6096 多校#6 自动机
想总结的太多了。。。白天再来吧 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define ull unsigned long long #define pb原创 2017-08-22 02:29:50 · 250 阅读 · 0 评论