hdu2222_ac自动机模版题
来源:互联网 发布:苹果手机价格评估软件 编辑:程序博客网 时间:2024/05/01 08:12
靠靠靠太煞笔了。。。
本来昨天晚上想得吃完饭回去就能写完,结果硬是调了一晚上加一早晨原因是有个地方应该每次访问都加一我写成了每次都赋值为1。。。。
喜闻乐见的模版题就不多说了。。。
靠竟然为了这个题没有看丹佛野马的nfl美联决赛。。。。
一会七点半的国联决赛也看不成了。。。
#include<iostream>#include<queue>#define MAX 1000005#include<cstring>#include<string>#include<cstdio>#include<algorithm> using namespace std; int n; struct trie{int ch[MAX][28];int val[MAX];int sz;int fail[MAX];trie(){sz=0;memset(ch[0],0,sizeof(ch[0]));memset(val,false,sizeof(val));}int num(char cj){return(cj-'a'+1);}void insert(string s){int len=s.length();int u=0;for(int i=0;i<len;i++){int c=num(s[i]);if(!ch[u][c]){memset(ch[sz],0,sizeof(ch[sz]));ch[u][c]=++sz;u=sz;}elseu=ch[u][c];}val[u]++;}void clear(){sz=0;memset(ch,0,sizeof(ch));memset(val,0,sizeof(val));memset(fail,0,sizeof(fail));}}wbysr; void init(){string s1;scanf("%d",&n);for(int i=1;i<=n;i++){cin>>s1;wbysr.insert(s1);}return;}void make_fail(){wbysr.fail[0]=-1;int x,y,t;queue<int>q;q.push(0);while(!q.empty()){x=q.front();q.pop();for(int i=1;i<=26;i++)if(wbysr.ch[x][i]){y=wbysr.ch[x][i];q.push(y);t=wbysr.fail[x];while(t!=-1&&!wbysr.ch[t][i])t=wbysr.fail[t];if(t>=0)wbysr.fail[y]=wbysr.ch[t][i];elsewbysr.fail[y]=0;}}} void fuck_it(){string word;cin>>word;int len=word.length(),now=0,ans=0;int j;for(int i=0;i<len;i++){j=word[i]-'a'+1;while(now!=-1&&!wbysr.ch[now][j])now=wbysr.fail[now];if(now>=0)now=wbysr.ch[now][j];elsenow=0;for(int j=now;j!=-1;j=wbysr.fail[j]){ans+=wbysr.val[j];wbysr.val[j]=0;}}printf("%d\n",ans);} int main(){int time;scanf("%d",&time);while(time--){wbysr.clear();init();make_fail();fuck_it();}return 0;}
0 0
- hdu2222_ac自动机模版题
- HDOJ2222 AC自动机模版题
- LA4670 AC自动机模版题
- HDU 2222 AC自动机模版题
- hdu 2896 AC自动机模版题
- hdu 3065 AC自动机模版题
- HDU 2222 AC自动机模版题
- HDU 2896 AC自动机模版题
- HDU 3065 AC自动机模版题
- hdu2222 ac自动机模版
- AC自动机模版
- AC自动机模版
- AC自动机模版
- AC自动机模版
- ac自动机模版hdu2222
- hdu2222 ac自动机模版
- AC自动机模版
- ac自动机模版
- Binary Tree Inorder Traversal - LeetCode
- Search Insert Position
- Android Studio java.lang.RuntimeException: Unable to start activity ComponentInfo
- 用C/C++设计Lu结构、字典、类等高级数据类型
- C/C++使用MLu简化Lu脚本系统的使用
- hdu2222_ac自动机模版题
- 查看 rpm包依赖性
- 从“史记2013”看百度百科的新媒体态度
- linux的RPM查询命令
- win32 dll简单例子
- Delphi 与 C/C++ 数据类型对照表
- DLL编写教程
- Delphi 调用 c编写的动态链接库,结构体指针作为参数
- POJ 1860 Currency Exchange(最短路 Bellman-Ford)