随笔分类 -  字符串算法——AC自动机

摘要:复习了一下高斯消元解图上期望概率,笔记的话,就直接去看SengXian的blog吧.BZOJ 1444 - [Jsoi2009]有趣的游戏见https://blog.sengxian.com/solutions/bzoj-1444 #include <cstdio> #include <cstrin 阅读全文
posted @ 2018-04-10 18:56 TS_Hugh 阅读(415) 评论(0) 推荐(0)
摘要:已完成AC自动机:bzoj1559 ** AC自动机+矩乘bzoj1195:[HNOI2006]最短母串 ** AC自动机+矩乘后缀数组:bzoj1692 * SAbzoj1031 * SAbzoj3796 ** SA+KMPbzoj3230:相似子串 ** SA+ST表bzoj4698 *** S 阅读全文
posted @ 2018-01-03 12:21 TS_Hugh 阅读(214) 评论(1) 推荐(1)
摘要:我一开始想的是倒着来,发现太屎,后来想到了一种神奇的方法——我们带着一个既有期望又有概率的矩阵,偶数(2*id)代表期望,奇数(2*id+1)代表概率,初始答案矩阵一列,1的位置为1(起点为0),工具矩阵上如果是直接转移那么就是由i到j概率期望都乘上1/alphabet,特别的,对于一个包含禁忌串的 阅读全文
posted @ 2017-09-15 21:40 TS_Hugh 阅读(346) 评论(0) 推荐(0)
摘要:关于AC自动机:一个在kmp与Trie的基础上建立的数据结构,关键在于Trie树结构与fail指针,他们各有各的应用。在AC自动机里最典型的就是多串匹配,原本效率为O(n*l+n*l+m*l),(n是模式串个数,m是匹配串长度,l是模式串平均长度),那么他的效率甚至有时不如多个kmp,虽然很好被卡但 阅读全文
posted @ 2017-09-13 21:16 TS_Hugh 阅读(141) 评论(0) 推荐(0)
摘要:就是考了一个fail树的神奇应用我们建出fail树之后,发现我们就是在求y到根的路径上所有的点在以x为根的子树里的个数,这个我们离线后用树状数组+dfs序即可解决 阅读全文
posted @ 2017-09-13 20:51 TS_Hugh 阅读(151) 评论(0) 推荐(0)
摘要:#include #include #define N 55 #define M 2000005 using namespace std; inline void read(char *s) { char ch=getchar(); while(ch'Z')ch=getchar(); int len=0; while(ch>='A'&&chch[s[i]-'A']... 阅读全文
posted @ 2017-07-08 10:48 TS_Hugh 阅读(203) 评论(0) 推荐(0)
摘要:我表示不是很懂HDU卡内存的优良传统.......以及他们卡输出的良好风尚........ AC自动机裸体关键在于http://ascii.911cha.com/ 阅读全文
posted @ 2017-07-07 12:22 TS_Hugh 阅读(161) 评论(0) 推荐(0)
摘要:#include #include #include #include #define L 51 #define LL 100000002 using namespace std; char c[11][L],s[LL]; struct Trie { Trie *ch[26],*fail,*last; int who; Trie() { memset... 阅读全文
posted @ 2017-07-06 12:20 TS_Hugh 阅读(160) 评论(0) 推荐(0)