相关概念: (1)AOE (Activity On Edges)网络如果在无有向环的带权有向图中用有向边表示一个工程中的各项活动(Activity),用边上的权值表示活动的持续时间(Duration),用顶点表示事件(Event),则这样的有向图叫做用边表示活动的网络,简称AOE (Activit....
分类:
编程语言 时间:
2014-12-23 21:08:48
阅读次数:
252
题目大意:给你一个有向图,判断是否有环。
思路:构建拓扑排序,如果排序失败,说明该有向图存在有向环。
另一种思路,用链式前向星存储图,在数据输入的同时统计每个点的入度,
并存入indegree数组,每删除一个点,就遍历以这个点为起点的边,将边
对应的入度减1即可选择并删除下一点。用队列来存储已发现的入度为0的
点,更新入度的同时更新这个队列。如果最终得到队列中的元素个数小于
总的元素个数,说明排序失败,存在环。...
分类:
编程语言 时间:
2014-12-19 22:06:40
阅读次数:
264
题目大意:有n个变量,和m个二元组关系。关系(x,y)表示x<y。现在讲所有变量
从小到大来排序,进行输出。
例如:有4个变量a、b、c、d,若a<b,c<b,d<c,则排序后的可能为a<d<c<b,
也有其他可能d<a<c<d。只要输入其中一个就可。
思路:把n个变量看成是n个点,“x<y”看做是一条边,则得到一个有向图。对图的
节点进行排序,使得每一条有向边(x,y)对应的x都在y前边。即所谓的拓扑排序。
DFS进行拓扑排序,如果存在有向环,则不存在拓扑排序,否则就将访问完的结点
假如到当前拓扑序列的前...
分类:
编程语言 时间:
2014-12-12 20:53:23
阅读次数:
207
题意:
给出一些正方形,这些正方形的每一条边都有一个标号,这些标号有两种形式:1.一个大写字母+一个加减号(如:A+, B-, A-......), 2.两个0(如:00);这些正方形可以随意翻转和旋转,当两个正方形通过旋转或翻转,使得他们的公共边为相同大写字母并且符号相反时,他们就可以彼此结合拼在一起,现在给出n中正方形,每种正方形有无限多种,问这些正方形能否拼成一个无限大的结构。
题解:
...
分类:
编程语言 时间:
2014-11-19 18:44:55
阅读次数:
170
题目:有n个变量,m个二元组(u,v),表示变量u小于变量v。将所有变量从小到大排列,给出满足条件的一个。
思路:把“小于”关系看成有向边,得到一个有向图。任务就是把一个图的所有结点排序,使得每一条有向边(u,v)对应的 u 都排在 v 的前面。在图论中,这个问题称为拓扑排序topological sort。 不难发现:如果图中存在有向环,则不存在拓扑排序的解,反之则存在。我们把不包含有向环的...
分类:
其他好文 时间:
2014-08-31 14:31:31
阅读次数:
200
本以为是个树形DP,按照树形DP的方法在那里dfs,结果WA到死,因为它存在有向环,不是树,凡是存在环的情况切记不要用树形的方法去做题目的突破点在于将边排完序之后,用点表示以该点为边结尾的最大长度,因为是按边排序从小到大加边,所以后面加的边肯定比前面的小。要注意相同边的情况,要搞个缓冲,因为相同边的...
分类:
其他好文 时间:
2014-08-31 10:30:31
阅读次数:
216
链接:http://poj.org/problem?id=1094
题意&思路:直接拓扑排序。多解输出一串英文,有环输出一段英文,唯一解输出一段英文及排序结果。
细节:题目描述不是很清楚,如果不看discuss我肯定要WA出翔。
discuss里总结了两点关键的:
1. 输入一条边时如果此时拓扑有解就输出这个解,即使后面的边成有向环也不管了,所以每次输入的时候都得进行拓扑排序。...
分类:
其他好文 时间:
2014-08-25 22:58:15
阅读次数:
279
比较好的讲解:http://blog.csdn.net/wsniyufang/article/details/6747392 view code//首先为除根之外的每个点选定一条入边,这条入边一定要是所有入边中最小的。
//现在所有的最小 入边都选择出来了,如果这个入边集不存在有向环的话,我们
//...
分类:
其他好文 时间:
2014-08-21 01:28:03
阅读次数:
183
一开始我还天真的一遍DFS求出最长链以为就可以了不过发现存在有向环,即强连通分量SCC,有向环里的每个点都是可比的,都要分别给个集合才行,最后应该把这些强连通分量缩成一个点,最后保证图里是 有向无环图才行,这个时候再找最长链,当然缩点之后的scc是有权值的,不能只看成1,缩点完了之后,用记忆化搜索D...
分类:
其他好文 时间:
2014-08-10 18:17:30
阅读次数:
199
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若 ∈E(G),则u在线性序列中出现在v之前。若图中存在有向环,则不可能使顶点满足拓扑次序。利用DFS每次取出入度为0的点,存入栈中,即可获得拓扑序...
分类:
其他好文 时间:
2014-07-31 23:15:30
阅读次数:
257