AC自动机
GEOTCBRL
?????
展开
-
【 bzoj 1444 】 [Jsoi2009]有趣的游戏 - AC自动机+矩阵乘法
假设现在建好了一个AC自动机,那么接受一个串相当于从根节点走到单词节点。对应到这道题上,每走一步是有权值的(概率),就相当于无向图一样。这样只要把邻接矩阵建出来然后自乘一定次数就可以了。 因为精度要求不太高,所以自乘个63次就完全够了233333#include <bits/stdc++.h> #define rep(i,a,b) for (int i = a , _ = b ; i <= _原创 2016-02-16 18:11:53 · 1250 阅读 · 0 评论 -
【 bzoj 2553 】 [BeiJing2011]禁忌 - AC自动机+矩阵乘法
将自动机建出来之后就可以得到一个转移矩阵,在没有两个串不能重叠的条件下直接跑矩乘就可以了。但是现在有这个条件,我们就新加一个点表示转移到的单词节点会转移到这里面去,然后这个点连出的边只有自己且边权为1。还要注意的是,一个节点的fail点是单词节点的话那么这个点也要标记成单词节点(终态),因为他是禁位,也要转移到那个新点。#include <bits/stdc++.h> #define rep(i,a原创 2016-02-16 22:46:37 · 1238 阅读 · 0 评论