
字符串
字符串
Herod_
这个作者很懒,什么都没留下…
展开
-
模板:后缀数组
DA算法#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=100010;int wa[N],wb[N],wv[N],wss[N],rak[N],height[N],cal[N],n,sa[N];char s[N];int cmp(int *r,int a,int b,int l){return r[a]==r[b]&&r[a+l]==r[b+l];}void d原创 2020-10-27 14:21:42 · 193 阅读 · 0 评论 -
模板:回文自动机
const int N = 1e5+10;struct PAM{ /** len[u] : u 节点代表回文串的长度。 fa[u] : u 节点代表回文串的最长回文后缀代表的节点。 tran[u][c] : 转移函数,表示在 u 代表的回文串的两端加上字符 c 之后的回文串。 num[u] : 代表 u 节点代表回文串的回文后缀个数。 L[i] : 代表原字符串以 i 结尾的回文后缀长度。 size[u] : u 点代表的回文串的数量。 **/ int len[N],fa[N],s原创 2020-09-11 21:32:34 · 148 阅读 · 0 评论 -
ZOJ-3430-Detect the Virus(AC自动机+字符串+位运算)
Detect the VirusNobita did use an outstanding anti-virus software, however, for some strange reason, this software did not check email attachments. Now Nobita decide to detect viruses in emails by himself.To detect an virus, a virus sample (several binar原创 2020-09-10 22:03:28 · 237 阅读 · 0 评论 -
HDU-3065-病毒侵袭持续中(AC自动机)
病毒侵袭持续中Problem Description小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争。知己知彼,百战不殆,小t首先要做的是知道这个病毒网站特征:包含多少不同的病毒,每种病毒出现了多少次。大家能再帮帮他吗?Input第一行,一个整数N(1<原创 2020-09-10 19:10:57 · 192 阅读 · 0 评论 -
HDU-2896-病毒侵袭(AC自动机)
病毒侵袭Problem Description当太阳的光辉逐渐被月亮遮蔽,世界失去了光明,大地迎来最黑暗的时刻。。。。在这样的时刻,人们却异常兴奋——我们能在有生之年看到500年一遇的世界奇观,那是多么幸福的事儿啊~但网路上总有那么些网站,开始借着民众的好奇心,打着介绍日食的旗号,大肆传播病毒。小t不幸成为受害者之一。小t如此生气,他决定要把世界上所有带病毒的网站都找出来。当然,谁都知道这是不可能的。小t却执意要完成这不能的任务,他说:“子子孙孙无穷匮也!”(愚公后继有人了)。万事开头难,小t收集了原创 2020-09-10 18:57:38 · 205 阅读 · 0 评论 -
模板:AC自动机
const int N = 1e6+5;int trie[N][26]; // 字典树int wordcnt[N]; // 次数统计int fail[N]; // 众所周知fail指针int tot = 0; // 节点数量void insertWord(string s){ // 字典树操作,插入字符串 int root = 0; for(int i = 0 ; i < s.size(); i +原创 2020-09-09 21:27:40 · 195 阅读 · 0 评论