Self-Assembly题目抽象:有n种正方形。每种的数量无穷多。给出正方形每边的标号。 给出正方形的连接规则。 问是否可以连接出无界的图形。思路:拓扑排序,以边上标号为点,正方形为边,拓扑图中存在有向环时unbounded,否则bounded;...
分类:
其他好文 时间:
2015-05-28 13:59:25
阅读次数:
139
拓扑排序算法思想
1、在AOV网络中选一个没有直接前驱的顶点, 并输出之;
2、从图中删去该顶点, 同时删去所有它发出的有向边;
3、重复以上步骤, 直到
◆ 全部顶点均已输出,拓扑有序序列形成,拓扑排序完成;
◆ 或者图中还有未输出的顶点,但已跳出处理循环。这说明图中还剩下一些顶点,它们都有直接前驱,再也找不到没有前驱的顶点了。这时AOV网络中必定存在有向环。
用...
分类:
编程语言 时间:
2015-05-27 17:20:45
阅读次数:
155
题意:定义域属于一个集合S={0,1,...,n-1},求S的子集个数,满足以子集的元素为定义域的函数P(x)的值域等于子集本身。思路:以元素为点,x到P(x)连一条有向边,不难发现,如果有一个有向环,那么环上的元素构成的集合就满足要求。所以问题转化为求有向环的个数,由于有向环之间不可能有交点(同一...
分类:
其他好文 时间:
2015-05-12 01:38:47
阅读次数:
125
最小树形图:简单来说,求一个图的G0的最小树形图,先求出最短弧集合E0。若E0不存在,则图G0的最小树形图不存在。若存在且不含有向环,则E0就是T0中的所有的边。如果E0存在且含有有向环,则收缩有向环为一个点u,并形成图G1,继续且G1的最小树形图直至图Gi,若图Gi无最小树形图,则图G0也不存在最小树形图,若Gi有最小树形图Ti.则逐层展开得到T0
具体可以参考这位大牛写的过程:http://w...
分类:
Web程序 时间:
2015-05-07 22:11:26
阅读次数:
173
基于贪心和缩点的思想。
假设根的顶点是V0。
(1)除了根结点外,所有的点Vi,找到以Vi为终点的最短的边,加入集合中
(pre[v]存放的是终点v的起点,In[v]存放终点为v的最短的边)
(2)检查集合中有没有有向环和收缩点。若没有有向环和收缩点,结束计算;若没有有向环、但含收缩边,则跳至步骤(4);若含有有向环,则跳至步骤(3)。Ps:如果出现重边,将忽略权值较高的
(3)含有有向环...
分类:
其他好文 时间:
2015-05-03 23:45:04
阅读次数:
154
ExplorationTime Limit: 30000/15000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 194Accepted Submission(s): 63Proble...
分类:
编程语言 时间:
2015-05-03 17:16:51
阅读次数:
200
拓扑排序
拓扑排序是针对有向图进行的,拓扑排序有两个作用:(1)针对某种定义好的“小于”关系为结点排序;(2)判断一个有向图中是否存在有向环。我们可以利用DFS来完成拓扑排序。
下面是判断一个有向图g中是否含有有向环的代码:
#define N 100+10
int c[N], g[N][N];//利用二维数组g保存有向图
int n;//结点数,下标从0开始
bool toposort(...
分类:
编程语言 时间:
2015-04-02 18:59:12
阅读次数:
158
1.题目描述:点击打开链接
2.解题思路:本题利用拓扑排序解决。拓扑排序适用于有向图,图中的结点满足给定的“连接”法则而形成一张有向图,通过拓扑排序,可以判断该图中是否含有有向环。本题如果直接按照题意去一个个地尝试拼接正方形,会很耗费时间,因为n的数目会非常大。如果我们进一步抽象,将正方形的标号看做一个拼接点,由于00不能作为拼接点,因此总共有26*2=52个点,那么如果存在另一个正方形B可以和...
分类:
其他好文 时间:
2015-04-02 15:16:04
阅读次数:
130
转载自这里 给你一个N个顶点M条边的带权有向图,要你把该图分成一个或多个不相交的有向环。且所有定点都被有向环覆盖。问你该有向环所有权值的总和最小是多少? 答案就是:有向环最大权值覆盖=最优匹配。分析: 我们把任意一个顶点i都分成两个,即i和i’. 如果原图存在i->j的边,那么二分图有i-...
分类:
其他好文 时间:
2015-03-31 00:25:28
阅读次数:
265
拓扑排序:对有向图的所有结点排序,使得每一条有向边(u,v)对应的u都排在v的前面。
如果图中存在有向环,则不存在拓扑排序,反之则存在。把不包含有向环的有向图称为有向无环图(Directed Acyclic Graph,DAG)。
//因为查找的是有向边(u,v),所以在放置u之前需要把比u偏序大的所有的v放置好。
//所以,所有元素的放置是从后往前放的。
//用到的vis数组,vis[u]=...
分类:
编程语言 时间:
2015-02-04 20:26:34
阅读次数:
255