KMP
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[KMP DP 矩阵快速幂加速] BZOJ 1009 [HNOI2008]GT考试
%%%jiry_2 把 KMP 的 DFA 建出来,相当于求长度为 n 的不经过 m 号点的路径条数。 矩阵乘法。 时间复杂度 O(n3logn) #include #include #include using namespace std; const int N=25; int n,m,P; struct Matrix{ int n,a[N][N]; Matrix(原创 2016-08-05 14:53:51 · 432 阅读 · 0 评论 -
[KMP next树] BZOJ 3670 [Noi2014]动物园
在 i 和 nexti 之间连一条边,可以得到一棵以 0 为根的树。 建出来树结构,如果没有 |Si| × 2 ≤ i 的限制,答案就是每一个节点 的深度。 可以加一个指针 边dfs边移指针 这个idea很不错啊 下面是早期的代码 没有建树 但也是线性的 #include #include #include #include #define M 100原创 2016-08-05 14:56:30 · 449 阅读 · 0 评论 -
[KMP next树] 51Nod 1277 字符串中的最大值
AC自动机的fail可以成树 KMP的next也能成树 这道题就是沿着树往上统计出现次数 #include #include #include #include using namespace std; const int N=100005; int n; char S[N]; int next[N]; int cnt[N]; int main(){ scanf("%s",S原创 2016-11-22 14:33:28 · 659 阅读 · 0 评论 -
[高斯消元 概率 KMP] BZOJ 4820 [Sdoi2017]硬币游戏
一个直观的想法 是建AC自动机 然后消元 但是这样变量个数是O(nm)O(nm) 然后我就不会做了 概率题都好妙啊 一个精妙的设计是再定义一个状态N 表示当前串不包含任何人的概率 举个例子 来自这里 例如: A=TTH, B=HTT 那么N+TTH一定会到终止点,但不一定TTH加完后才停止 NTTH = A + BH + BTH 0.125N = A + 0.75B原创 2017-05-04 08:00:13 · 1085 阅读 · 0 评论 -
[贪心 KMP] 2016 计蒜之道 初赛 第一场 A. 青云的服务器密钥
只有一种字母 简单求和一下 两种或者以上的字母 我们就把某个字母安排在这,它同种类的其他字母安排到最后,那么前面不含这个字母的部分的π值都将为0,从开始出现这个字符,才有π值,且只能为1,这样答案就应该是这个字母出现次数cnt-1。 #include #include #include using namespace std; const int N=1000原创 2016-11-09 10:42:42 · 440 阅读 · 0 评论