[BZOJ1194][HNOI2006]潘多拉的盒子 Input 第一行是一个正整数S,表示宝盒上咒语机的个数,(1≤S≤50).文件以下分为S块,每一块描述一个咒语机,按照咒语机0,咒语机1„„咒语机S-1的顺序描述.每一块的格式如下. 一块的第一行有两个正整数n,m.分别表示该咒语机中元件的个数.咒语源输出元的个数(1≤m≤n≤50). 接下来一行有m个数,表示m个咒语源输出元的标号(都在0到n-1之间).接下来有n行,每一行两个数.第i行(0≤i≤n-1)的两个数表示pi,0和pi,1(当…
双DFS方法就是正dfs扫一遍,然后将边反向dfs扫一遍.<挑战程序设计>上有说明. 双dfs代码: #include <iostream> #include <cstdio> #include <cstring> #include <vector> using namespace std; ; vector <int> G[MAXN]; //图的邻接表 vector <int> RG[MAXN]; //图的反向邻接表 v…
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 344  Solved: 181[Submit][Status][Discuss] Description Input 第一行是一个正整数S,表示宝盒上咒语机的个数,(1≤S≤50).文件以下分为S块,每一块描述一个咒语机,按照咒语机0,咒语机1„„咒语机S-1的顺序描述.每一块的格式如下. 一块的第一行有两个正整数n,m.分别表示该咒语机中元件的个数.咒…
O(S²)枚举2个诅咒机, 然后O(n²)BFS去判断. 构成一个有向图, tarjan缩点, 然后就是求DAG的最长路.. ----------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<stack&g…
一:tarjan算法详解 ◦思想: ◦ ◦做一遍DFS,用dfn[i]表示编号为i的节点在DFS过程中的访问序号(也可以叫做开始时间)用low[i]表示i节点DFS过程中i的下方节点所能到达的开始时间最早的节点的开始时间.(也就是之后的深搜所能到达的最小开始时间)初始时dfn[i]=low[i] ◦ ◦在DFS过程中会形成一搜索树.在搜索树上越先遍历到的节点,显然dfn的值就越小. ◦ ◦DFS过程中,碰到哪个节点,就将哪个节点入栈.栈中节点只有在其所属的强连通分量已经全部求出时,才会出栈. ◦…
好久没写博客了(都怪作业太多,绝对不是我玩的太嗨了) 所以今天要写的是一个高大上的东西:强连通 首先,是一些强连通相关的定义 //来自度娘 1.强连通图(Strongly Connected Graph)是指在有向图G中,如果对于每一对vi.vj,vi≠vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图. 2.有向图的极大强连通子图,称为强连通分量(strongly connected components). 当然,看定义是肯定看不懂的,所以,我举个栗子说明一下 我们以下图为例,这是…
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 456  Solved: 215[Submit][Status][Discuss] Description Input 第一行是一个正整数S,表示宝盒上咒语机的个数,(1≤S≤50).文件以下分为S块,每一块描述一个咒语机,按照咒语机0,咒语机1„„咒语机S-1的顺序描述.每一块的格式如下. 一块的第一行有两个正整数n,m.分别表示该咒语机中元件的个数.咒…
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 464  Solved: 221[Submit][Status][Discuss] Description Input 第一行是一个正整数S,表示宝盒上咒语机的个数,(1≤S≤50).文件以下分为S块,每一块描述一个咒语机,按照咒语机0,咒语机1„„咒语机S-1的顺序描述.每一块的格式如下. 一块的第一行有两个正整数n,m.分别表示该咒语机中元件的个数.咒…
Description Sulotion 首先要对每对咒语机建图,判断机器a是否能生成所有机器b生成的 如果跑一个相同的串,最后结束的点b可输出a不可输出,判断就为否 大概就用这种思路,f[x][y]表示a中跑到x b中跑到y是否可行,然后大概记忆化搜索,只有两种转移 //感觉跑自动机的题目经常要这么(跑到了哪一个结点)表示状态 建图之后可能会有环(a和b生成的一样),于是强连通分量缩点 变成了DAG,然后dp记忆化搜索出答案 Code 一开始边的数组也直接用maxn了,最近怎么总是犯低级错误…
Description 传说中,有个神奇的潘多拉宝盒.如果谁能打开,便可以拥有幸福.财富.爱情.可是直到真的打开,才发现与之 相随的还有灾难.不幸.其实,在潘多拉制造这个宝盒的时候,设置了一些咒语来封锁住灾难与不幸.然而,直到 科技高度发达的今天,人们才有希望弄懂这些咒语.所以说,上千年来,人们只得忍受着各种各样的疾病和死亡的 痛苦.然而,人类的命运从此改变了.经过数十年的研究,NOI组织在最近终于弄清楚了潘多拉咒语的原理.咒语 是由一个叫做咒语机的机器产生的.用现在的名词来解释,咒语机其实就是…