BZOJ2938: [Poi2000]病毒
来源:互联网 发布:sql 保存二进制数据 编辑:程序博客网 时间:2024/06/06 00:33
BZOJ2938
如果存在一个无限长的安全代码段,就是不停的匹配但无法匹配到标记节点。也就是AC自动机中Trie图成环(不包含被标记点)。建完Trie图后找环即可。
【代码】
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#define N 30005using namespace std;typedef long long ll;const int mod=10007;ll read(){ ll x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} return x*f;}char ch[N];int n,m,cnt,ans;int g[N][2],Next[N];bool tag[N];void Add(){ int len=strlen(ch); int now=0; for(int i=0;i<len;i++) { if(!g[now][ch[i]-'0']) g[now][ch[i]-'0']=++cnt; now=g[now][ch[i]-'0']; } tag[now]=1;}void Input_Init(){ n=read(); for(int i=1;i<=n;i++) { scanf("%s",ch); Add(); }}void Construct_Automation(){ queue<int>q; q.push(0); while(!q.empty()) { int k=q.front();q.pop(); for(int i=0;i<2;i++) { int &v=g[k][i]; if(v) { q.push(v); Next[v]=k==0?0:g[Next[k]][i]; } else v=k==0?0:g[Next[k]][i]; tag[k]|=tag[Next[k]]; } }}int Flag[N];bool Dfs(int x){ Flag[x]=-1; for(int i=0;i<=1;i++) { int v=g[x][i]; if(tag[v]||Flag[v]==1) continue; if(Flag[v]==-1) return true; if(Dfs(v)) return true; } Flag[x]=1; return false;}void Solve(){ printf(Dfs(0)?"TAK":"NIE");}int main(){ Input_Init(); Construct_Automation(); Solve(); return 0;}
0 0
- BZOJ2938: [Poi2000]病毒
- bzoj2938: [Poi2000]病毒
- bzoj2938【Poi2000】病毒
- BZOJ2938: [Poi2000]病毒
- bzoj2938 [Poi2000]病毒
- BZOJ2938 POI2000 病毒 题解&代码
- AC自动机【poi2000】bzoj2938 病毒
- BZOJ2938: [Poi2000]病毒 AC自动机
- [bzoj2938][Poi2000]病毒 AC自动机
- BZOJ2938[Poi2000]病毒 AC自动机
- 【bzoj2938】[Poi2000]病毒 trie图+dfs
- [BZOJ2938][POI2000]病毒 做题笔记
- bzoj2938 [Poi2000]病毒 AC自动机+DP
- bzoj2938[Poi2000]病毒 AC自动机+dfs
- [BZOJ2938][Poi2000]病毒(AC自动机+拓扑排序)
- BZOJ2938 [Poi2000]病毒 解题报告【AC自动机】【DFS】
- BZOJ2938 POI2000 病毒 补全AC自动机 Trie图判环
- bzoj2938病毒
- 第五章5.1 strace
- 【Codeforces Round #411 (Div. 1)】Codeforces 804C Ice cream coloring
- Python持久存储--数据保存到文件
- uikit——UIView——tintColor tintAdjustmentMode
- source insight使用教程
- BZOJ2938: [Poi2000]病毒
- tcpdump抓包,然后使用tcpreplay进行回放,出现了一些问题,目前找不到答案,暂时先记录在这里
- mongodb复制集操作步骤
- Java集合框架
- NYOJ239月老的难题
- Java 内部类
- 自定义控件之绘图篇(二):路径及文字
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- react-native cookie 的处理