博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ】2938: [Poi2000]病毒
阅读量:5942 次
发布时间:2019-06-19

本文共 584 字,大约阅读时间需要 1 分钟。

题意

\(n\)个01病毒串,总长不超过\(30000\)。问是否存在无限长的不包含病毒串的01串。

分析

考虑ac自动机,如果不包含病毒串而且无限长也就是说存在一个环(转移和fail树),使得环上不含病毒串。

题解

所以我们标记一下病毒串后dfs找环即可。

#include 
using namespace std;const int N=30005;int ch[N][2], tot, go[N], vis[N], ins[N], q[N], f[N];bool dfs(int x) { ins[x]=1; vis[x]=1; for(int i=0; i<2; ++i) { int y=ch[x][i]; if(ins[y]) { return 1; } if(go[y] || vis[y]) { continue; } if(dfs(y)) { return 1; } } ins[x]=0; return 0;}int main() { int n; scanf("%d", &n); for(int i=0; i

转载地址:http://pnmtx.baihongyu.com/

你可能感兴趣的文章
WPF Dispatcher介绍
查看>>
fiddler展示serverIP方法
查看>>
C语言中的随意跳转
查看>>
WPF中如何将ListViewItem双击事件绑定到Command
查看>>
《聚散两依依》
查看>>
小tips:你不知道的 npm init
查看>>
Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...
查看>>
Jmeter也能IP欺骗!
查看>>
Rust 阴阳谜题,及纯基于代码的分析与化简
查看>>
ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
查看>>
(原創) array可以使用reference方式傳進function嗎? (C/C++)
查看>>
170多个Ionic Framework学习资源(转载)
查看>>
Azure:不能把同一个certificate同时用于Azure Management和RDP
查看>>
Directx11教程(15) D3D11管线(4)
查看>>
Microsoft Excel软件打开文件出现文件的格式与文件扩展名指定格式不一致?
查看>>
ios ble 参考
查看>>
linux中注册系统服务—service命令的原理通俗
查看>>
基于托管C++的增删改查及异步回调小程序
查看>>
Oracle DBMS_STATS 包 和 Analyze 命令的区别
查看>>
给Visual Studio 2010中文版添加Windows Phone 7模板
查看>>