KMP
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[KMP DP 矩阵快速幂加速] BZOJ 1009 [HNOI2008]GT考试
%%%jiry_2把 KMP 的 DFA 建出来,相当于求长度为n 的不经过 m 号点的路径条数。矩阵乘法。时间复杂度 O(n3logn)#include#include#includeusing namespace std;const int N=25;int n,m,P;struct Matrix{ int n,a[N][N]; Matrix(原创 2016-08-05 14:53:51 · 439 阅读 · 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 · 457 阅读 · 0 评论 -
[KMP next树] 51Nod 1277 字符串中的最大值
AC自动机的fail可以成树 KMP的next也能成树这道题就是沿着树往上统计出现次数#include#include#include#includeusing 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 · 669 阅读 · 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 · 1098 阅读 · 0 评论 -
[贪心 KMP] 2016 计蒜之道 初赛 第一场 A. 青云的服务器密钥
只有一种字母简单求和一下两种或者以上的字母我们就把某个字母安排在这,它同种类的其他字母安排到最后,那么前面不含这个字母的部分的π值都将为0,从开始出现这个字符,才有π值,且只能为1,这样答案就应该是这个字母出现次数cnt-1。#include#include#includeusing namespace std;const int N=1000原创 2016-11-09 10:42:42 · 447 阅读 · 0 评论