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包含vmemset(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;
}

转载于:https://www.cnblogs.com/MashiroSky/p/6404137.html

【bzoj1194】 HNOI2006—潘多拉的盒子相关推荐

  1. bzoj1194 [HNOI2006]潘多拉的盒子

    http://www.elijahqi.win/archives/3189 Description 传说中,有个神奇的潘多拉宝盒.如果谁能打开,便可以拥有幸福.财富.爱情.可是直到真的打开,才发现与之 ...

  2. 【BZOJ-1194】潘多拉的盒子 拓扑排序 + DP

    1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 456  Solved: 215 [Submit][St ...

  3. BZOJ 1194: [HNOI2006]潘多拉的盒子 [DP DFA]

    传送门 题意: s个DFA,选出尽量多的自动机a0, a1, a2, . . . , at,使得a1包含a0.a2包 含a1,以此类推.s ≤ 50. DFA的字符集为{0,1},有的节点是输出源,节 ...

  4. HNOI2006 潘多拉的盒子

    题目描述 题解: 题目的描述比较长,理解起来也有一定难度.仔细读题后我们发现整个任务可以分成两个部分:找出咒语机之间所有的升级关系.求最长升级序列. 1. 求升级关系: 容易看出,咒语机i可以抽象成一 ...

  5. 第16章 潘多拉的盒子

    在分班后的高二上半学期的期末,孙斌新忽然不想上学了,想去当兵.我们不明白是什么导致他会有这样的想法.是因为高中的压力吗,还是适应不了这炼狱般的生活呢?我们不知道,知道的只是孙斌新在期末考完回家的路上, ...

  6. 专访李开复:人类已打开潘多拉盒子,封堵AI变革只会徒劳

    来源:人工智能学家 本文约3623字,建议阅读6分钟. 我们对李开复进行了专访,谈到了众多当前AI领域最受关注的话题. 摘要:近期,李开复新书<AI·未来>在美国同样反响不俗.在荣登多个排 ...

  7. IEEE专访李开复:人类已打开潘多拉盒子,封堵AI变革只会徒劳

    原作 :<IEEE Spectrum>  量子位 转载 | 公众号 QbitAI 近期,李开复新书<AI·未来>在美国同样反响不俗. 在荣登多个排行榜后,IEEE旗下<I ...

  8. 微软获 OpenAI 独家 GPT-3 模型授权,是潘多拉还是聚宝盆?

    作者 | 八宝粥 出品 | 程序人生(ID:coder_life) 9 月 20 日,微软宣布与 OpenAI 达成合作协议,得到了目前最火的 GPT-3 语言模型的独家授权,微软 CTO Kevin ...

  9. 谁打开了便携笔记本的潘多拉盒子

    自从华硕推出Eee PC,HP.Acer.DELL都在近期推出自己的便携笔记本,有人将便携笔记本定位为超低价笔记本,其实便携笔记本与低价笔记本是两个概念,如果只论低价,国内神州笔记本电脑并不一定高过华 ...

  10. 初露锋芒的AI战斗机,打开AI军备竞赛的潘多拉盒子

    作者|海怪 出品|脑极体 不久前,美国国防部高级研究计划局(DARPA)的ACE计划资助的一项名为"阿尔法狗斗"(AlphaDogfight Trials)的VR模拟人机对抗赛中, ...

最新文章

  1. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...
  2. 92号油的发动机能加97吗?标号越高不代表就越好
  3. C#筛法求出范围内的所有质数
  4. 喜讯不断,BCH又迎来两个代币发行方案
  5. 项目: flappy bird
  6. addroutes刷新_vue解决addRoutes多次添加路由重复的操作方法
  7. Simulink工作区无法保存To workspace模块的数据解决办法
  8. C语言-01基础语法
  9. 计算机基础(一):ION IOMMU 内存申请
  10. Typecho - MyTagCloud标签云插件
  11. C语言实现贪吃蛇小游戏
  12. python少儿图形编程软件_现在最好的少儿编程软件是什么?
  13. 第一次使用码云上传本地项目
  14. 谷歌统计插件ga的使用
  15. 女大学生 你的青春值多少钱
  16. android 绘画笔迹回放_android画板笔锋实现
  17. Codeforces 869E. The Untended Antiquity (二维Fenwick,Hash)
  18. 2022最新超级蜘蛛池站群优化网站系统源码
  19. 通过软件架构来达到易用性-易用性的好处
  20. 2021年R1快开门式压力容器操作考试资料及R1快开门式压力容器操作考试试卷

热门文章

  1. Cobbler详解(一)——Cobbler基础知识
  2. LVS详解(三)——LVS算法简介
  3. MySQL优化详解(四)——MySQL缓存设置
  4. 网络层QoS分类和标记字段详解
  5. 2-1 如何抓不同的接口(手机抓包,web网页抓包)
  6. NSCalendar日历
  7. 10.Configure One-to-Many(配置一对多关系)【Code-First系列】
  8. 调用新浪微博显示用户信息
  9. GoDiagram可以画节点和连线的WinForms
  10. APUE读书笔记-06系统数据文件和信息-03加密密码