建设银行北京分行网站,做视频网站用什么服务器配置,网站建设与设计实训总结,东莞网络优化排名被Star_Feel大爷带着做题 明显大力AC机然后找环 本来我一开始想的是先去有另一个病毒为前缀的病毒#xff0c;结果今天早上写的时候偷懒没写 结果跳fail的时候会跳到中间。。。无语#xff0c;Star_Feel大爷叫我son或一下now和fail就过了 还有神仙是直接把fail接到儿子的更流…被Star_Feel大爷带着做题 明显大力AC机然后找环 本来我一开始想的是先去有另一个病毒为前缀的病毒结果今天早上写的时候偷懒没写 结果跳fail的时候会跳到中间。。。无语Star_Feel大爷叫我son或一下now和fail就过了 还有神仙是直接把fail接到儿子的更流弊了。。 #includecstdio
#includeiostream
#includecstring
#includecstdlib
#includealgorithm
#includecmath
using namespace std;struct Trie
{int w[2],fail; bool ed;
}tr[31000];int trlen;
char ss[31000];
void insert()
{int now0; int lenstrlen(ss1);for(int i1;ilen;i){int xss[i]-0;if(tr[now].w[x]0)tr[now].w[x]trlen;nowtr[now].w[x];}tr[now].edtrue;
}
int list[31000];
void bfs()
{int head1,tail2;list[1]0;while(head!tail){int nowlist[head];for(int x0;x1;x){int sontr[now].w[x];if(son0)continue;tr[son].ed|tr[now].ed;if(now0)tr[son].fail0;else{int ptr[now].fail;while(p!0tr[p].w[x]0)ptr[p].fail;tr[son].failtr[p].w[x];tr[son].ed|tr[tr[son].fail].ed;}list[tail]son;}head;}
}//------------------------AC---------------------------------------int v[31000];
bool dfs(int now)
{if(tr[now].edtrue)return false;if(v[now]0)return v[now];v[now]1;for(int x0;x1;x){int pnow;while(p!0tr[p].w[x]0)ptr[p].fail;if(dfs(tr[p].w[x]))return true;}v[now]0;return false;
}
int main()
{freopen(a.in,r,stdin);freopen(a.out,w,stdout);int n;scanf(%d,n);for(int i1;in;i)scanf(%s,ss1), insert();bfs();memset(v,-1,sizeof(v));if(dfs(0))printf(TAK\n);else printf(NIE\n);return 0;
} 转载于:https://www.cnblogs.com/AKCqhzdy/p/9727457.html