Dijkstra:裸的算法,O(n^2),使用邻接矩阵:算法思想:定义两个集合,一开始集合1只有一个源点,集合2有剩下的点。STEP1:在集合2中找一个到源点距离最近的顶点k:min{d[k]}STEP2:把顶点k加入集合1中,同时修改集合2中的剩余顶点j的d[j]是否经过k之后变短,若变短则修改d...
分类:
其他好文 时间:
2014-07-27 22:21:39
阅读次数:
440
给n个点的有向图,边以邻接矩阵形式给出,如果为1则有边,为0无边。然后给出0时刻每个点的一个值,为0或1,输入一个T,输出-T时刻每个点的值:确定的话就输出,不确定的话按照题目要求输出error信息
题目背景:t时刻,每个点有一个值,那么t+1时刻,如果一个点发出的边的终点值为一的个数为奇数个,那么t+1时刻这个点的值就是1;否则为0...
分类:
其他好文 时间:
2014-07-27 11:47:03
阅读次数:
236
链接:http://poj.org/problem?id=1659
题意:有n个湖泊,如果湖泊A和湖泊B之间有水路连接,则称他们互为邻居,现给出n个湖泊的邻居个数,如果他们可以构成一个图则输出YES和邻接矩阵,否则输出NO
这道题实际是给一个序列,看序列是否是一个可图序列。可以根据Havel-Hakimi定理的方法来构图,并在构图中判断是否出现了以下两种不合理的情形:
(1)某次对剩...
分类:
其他好文 时间:
2014-07-26 15:01:30
阅读次数:
178
#include
#include
#include
#include
#include
#include
using namespace std;
const int INF = 0x3f3f3f3f;//无穷大
const int maxn = 20;//顶点个数的最大值
int n;//顶点个数
int edge[maxn][maxn];//邻接矩阵
//Dijkstra算法用到的3个数...
分类:
其他好文 时间:
2014-07-26 02:29:56
阅读次数:
202
1 /* 2 ACM1811 可以利用拓扑排序和并查集解决,主要方式是利用并查集在输入数据的时候将所有相等的点合并 3 然后将处理完的数据统一按照一个符号方向连接成有向线段,利用的是邻接矩阵;接下来把每条边都进行履历 4 如果出现conflict,那么就会在去除所有入度的时候无法找到新...
分类:
其他好文 时间:
2014-07-26 01:01:26
阅读次数:
239
邻接表 邻接矩阵来存储图的信息相对于非完全图,会浪费大量的空间,同时在求最短路径的时候也会有多余的计算浪费时间。 使用邻接表可以节约这些浪费的时间。 这里介绍的是用数组模拟的邻接表: 定义begin[MAXN],end[MAXN],dis[MAXN],first[MAXN],next[MAX...
分类:
其他好文 时间:
2014-07-23 15:24:07
阅读次数:
277
本文出自:http://blog.csdn.net/svitter
一.图的生成树
.必然含有n-1条边。
.无向带权图。
.如何求最小生成树。
.prime | kruskal
Prime: 从点里面找一个最短的边。
kruskal: 从边里面找。
.密集图使用邻接矩阵来存储。
...
分类:
其他好文 时间:
2014-07-23 00:10:07
阅读次数:
254
本文出自:http://blog.csdn.net/svitter
题意:给出一个数字n代表邻接矩阵的大小,随后给出邻接矩阵的值。输出最小生成树的权值。
题解:
prime算法的基本解法;
1.选择一个点,然后不停的向其中加入权值最小的边,边的一端在已经生成的部分生成树中,另一端在未生成的生成树中。
2.利用优先队列维护边,将加入的点所包含的边加入到队列中去,随后按照边的权值弹出...
分类:
其他好文 时间:
2014-07-22 23:57:38
阅读次数:
596
题意:若两个QS之间要想连网,除了它们间网线的费用外,两者都要买适配器,求使所有的QS都能连网的最小费用。分析:这个除了边的权值外,顶点也有权值,因此要想求最小价值,必须算边及顶点的权值和。解决方法:用prim算法,在构造邻接矩阵时,在i到j的权值的基础上再加上i点的权值和j点的权值即可。附上AC代...
分类:
Web程序 时间:
2014-07-21 09:28:59
阅读次数:
252