关闭
当前搜索:

[数位DP AC自动机] Codeforces 434C Round #248 (Div. 1) C. Tachibana Kanade's Tofu

这个题无话可说 fi,j,k,tf_{i,j,k,t}表示第 ii 位,AC自动机上走到 jj ,当前得分为 kk ,是否小于上界 tt , 复杂度看着很高,其实跑不满?#include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using...
阅读(238) 评论(0)

[二进制分组 AC自动机] HDU 4787 GRE Words Revenge

这个如果单次询问的话应该是个AC自动机裸题 多次询问本来可以按时间分治 但是强制在线 就可以用xhr的二进制分组方法 浅谈数据结构题的几个非经典解法 也可以看CA的博客 【从此不怕强制在线】二进制分组学习笔记 大致思想是修改按二进制分组 这样最多log组 每次询问的复杂度会多一个log 合并的均摊复杂度也是log的#include #include #in...
阅读(277) 评论(0)

[AC自动机 矩阵快速幂 期望] BZOJ 2553 [BeiJing2011]禁忌

首先贪心很容易理解 每一步一旦走到禁忌点就会有一的贡献 那么就记每一步走到禁忌点的概率然后累加即是答案 累加可以加一个新节点  详见:http://www.cnblogs.com/zyfzyf/p/4153860.html...
阅读(191) 评论(0)

[AC自动机 fail树 树链的并] BZOJ 3881 [Coci2015]Divljak

建出AC自动机和fail树 然后每一个串在自动机上跑一遍 然后就是对应的节点到fail树根的路径的并都加一 路径的并有一个很好地idea  可以用两种dfs序 入栈序和出栈序 入栈序小于等于子树的last 减去 出栈序小于自己的 就是到根的路径 #include #include #include //#define dprintf(...) fprintf(stderr,__V...
阅读(281) 评论(0)

[AC自动机 概率DP 矩阵乘法||高斯消元] BZOJ 1444 [Jsoi2009]有趣的游戏

AC自动机建转移矩阵  然后 要么矩阵乘法 无限迭代 数据范围小可以接受 #include #include #include #include using namespace std; typedef long double ld; //typedef double ld; inline char nc() { static char buf[100000],*p1=buf,*...
阅读(329) 评论(0)

[AC自动机 DP] BZOJ 1030 [JSOI2007] 文本生成器

AC自动机上DP 算模板题吧 #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { ...
阅读(131) 评论(0)

[AC自动机 fail树 树状数组] BZOJ 2434 [NOI2011] 阿狸的打字机

PoPoQQQ:http://blog.csdn.net/popoqqq/article/details/41518097 fail树不难想 看到两个条件马上想到树套树 汗 后来发现可以离线 树状数组 #include #include #include #include using namespace std; inline char nc() { static char bu...
阅读(172) 评论(0)

[AC自动机 fail树 || 后缀数组] BZOJ 3172 [Tjoi2013]单词

只有我一个人觉得题意看不懂么 fail树的做法 首先我们将给出的n个串构建AC自动机 朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++ 但是这样做会TLE 我们不妨反向思考 fail指针反向后是一棵树 沿着fail指针扫一遍就是沿着树边向根扫一遍 只在插入时将每个串的每个节点cnt++ 那么每个串终点所在fail...
阅读(160) 评论(0)

[AC自动机模板题] HDU 2222 Keywords Search

模板题 考前复习 #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1...
阅读(133) 评论(0)
    个人资料
    • 访问:309418次
    • 积分:12408
    • 等级:
    • 排名:第1311名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论