【bzoj1194】 HNOI2006—潘多拉的盒子
http://www.lydsy.com/JudgeOnline/problem.php?id=1194 (题目链接)
题意
给出S个自动机,如果一个自动机u的所有状态是另一个自动机v的状态的子集,那么我们连一条有向边(u,v),问最长链。(事实上还要求方案)
Solution
神题。如果我们知道了包含关系,那么对于不需要求方案的bzoj上的,我们只需要Floyd一遍就可以了,求方案的其实也只需要topsort后dp。
具体细节:http://blog.csdn.net/ww140142/article/details/48008157
代码
// bzoj1194
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define LL long long
#define inf (1ll<<30)
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std; const int maxn=60;
int f[maxn][maxn],vis[maxn][maxn],S; struct statu {int x,y;};
struct data {
int n,m;
int t[maxn][2],p[maxn];
}a[maxn]; bool bfs(data u,data v) { //u包含v
memset(vis,0,sizeof(vis));
queue<statu> q;
q.push((statu){0,0});vis[0][0]=1;
while (!q.empty()) {
statu x=q.front();q.pop();
if (!u.p[x.x] && v.p[x.y]) return 0;
for (int i=0;i<=1;i++) {
int xx=u.t[x.x][i],yy=v.t[x.y][i];
if (!vis[xx][yy]) q.push((statu){xx,yy}),vis[xx][yy]=1;
}
}
return 1;
}
void Floyd() {
for (int k=0;k<S;k++)
for (int i=0;i<S;i++)
for (int j=0;j<S;j++)
if (i!=j && j!=k && i!=k && f[i][k] && f[k][j])
f[i][j]=max(f[i][j],f[i][k]+f[k][j]);
}
int main() {
scanf("%d",&S);
for (int i=0;i<S;i++) {
scanf("%d%d",&a[i].n,&a[i].m);
for (int x,j=1;j<=a[i].m;j++) scanf("%d",&x),a[i].p[x]=1;
for (int j=0;j<a[i].n;j++)
scanf("%d%d",&a[i].t[j][0],&a[i].t[j][1]);
}
for (int i=0;i<S;i++)
for (int j=0;j<S;j++)
if (i!=j && bfs(a[i],a[j]))
if (i<j || !f[j][i]) f[i][j]=1;
Floyd();
int ans=0;
for (int i=0;i<S;i++)
for (int j=0;j<S;j++) if (i!=j) ans=max(ans,f[i][j]);
printf("%d",ans+1);
return 0;
}
【bzoj1194】 HNOI2006—潘多拉的盒子的更多相关文章
- BZOJ1194: [HNOI2006]潘多拉的盒子(tarjan)
Description 传说中,有个神奇的潘多拉宝盒.如果谁能打开,便可以拥有幸福.财富.爱情.可是直到真的打开,才发现与之 相随的还有灾难.不幸.其实,在潘多拉制造这个宝盒的时候,设置了一些咒语来封 ...
- 【强连通分量】Bzoj1194 HNOI2006 潘多拉的盒子
Description Sulotion 首先要对每对咒语机建图,判断机器a是否能生成所有机器b生成的 如果跑一个相同的串,最后结束的点b可输出a不可输出,判断就为否 大概就用这种思路,f[x][y] ...
- 图论(Tarjan缩点):BZOJ 1194: [HNOI2006]潘多拉的盒子
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 344 Solved: 181[Submit][Stat ...
- BZOJ 1194: [HNOI2006]潘多拉的盒子( BFS + tarjan + dp )
O(S²)枚举2个诅咒机, 然后O(n²)BFS去判断. 构成一个有向图, tarjan缩点, 然后就是求DAG的最长路.. ------------------------------------- ...
- 【BZOJ-1194】潘多拉的盒子 拓扑排序 + DP
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 456 Solved: 215[Submit][Stat ...
- 1194: [HNOI2006]潘多拉的盒子
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 464 Solved: 221[Submit][Stat ...
- 1194: [HNOI2006]潘多拉的盒子 - BZOJ
Description Input 第一行是一个正整数S,表示宝盒上咒语机的个数,(1≤S≤50).文件以下分为S块,每一块描述一个咒语机,按照咒语机0,咒语机1„„咒语机S-1的顺序描述.每一块的 ...
- BZOJ 1194: [HNOI2006]潘多拉的盒子 [DP DFA]
传送门 题意: s个DFA,选出尽量多的自动机a0, a1, a2, . . . , at,使得a1包含a0.a2包 含a1,以此类推.s ≤ 50. DFA的字符集为{0,1},有的节点是输出源,节 ...
- HNOI2006 潘多拉的盒子
题目描述 题解: 题目的描述比较长,理解起来也有一定难度.仔细读题后我们发现整个任务可以分成两个部分:找出咒语机之间所有的升级关系.求最长升级序列. 1. 求升级关系: 容易看出,咒语机i可以抽象成一 ...
随机推荐
- python的字符串格式化
1.python到底有那几种字符串格式化模块? python有3种格式化字符串的方法: 传统的%字符串格式符 str.format函数 字符串模版template 新的python 3.6+还提供了新 ...
- docker 安装vim
执行以下命令 apt-get update apt-get install vim
- Python-RabbitMQ(简单发送模型)
RabbitMQ需要 erlang 和pika 1.RabbitMQ和erlang版本必须匹配,否则就报没有进程错误 2.RabbitMQ的erlang.cookie和windows下的erlang. ...
- 富文本(wangEditor框架)的使用教程
富文本的使用教程(wangEditor框架) 一,相信很多人用过很多富文本的框架,现在我向大家推荐一个很实用的一个富文本框架,具有丰富的功能项,容易使用. 所以本博客介绍这个富文本编辑器的使用哈!觉得 ...
- NodeJS http模块
Node.js提供了http模块,用于搭建HTTP服务端和客户端. 创建Web服务器 /** * node-http 服务端 */ let http = require('http'); let ur ...
- [mysql] 归档工具pt-archiver,binlog格式由mixed变成row
pt-archiver官方地址:https://www.percona.com/doc/percona-toolkit/3.0/pt-archiver.html 介绍:归档数据,比如将一年前的数据备份 ...
- [Notice]博客地址转移 vitostack.com
个人博客地址转移至vitostack.com 这里可能不会经常更新. 欢迎访问新地址.
- Daily Scrum (2015/11/1)
今天晚上我们照例召开了每周末的小组例会,主要总结本周的工作和讨论下一周的工作. 首先是本周的一些主要工作: 1.进行了代码的修改和完善. 2.开始进行服务器配置和UI. 3.学习借鉴了nutch爬虫的 ...
- web05-CounterServlet
电影网站:www.aikan66.com 项目网站:www.aikan66.com 游戏网站:www.aikan66.com 图片网站:www.aikan66.com 书籍网站:www.aikan66 ...
- c++课的圆周面积
又回顾了一下一两个月没动过的类,似乎又有点手生了,不过还好还可以做. 在栋哥的推荐下下载了一个vs2015,表示从dev的白鼠形式的简单操作缓过来还有些不习惯呢,不过有些功能,例如诊断还是挺好用的 这 ...