今天学的内容挺多的。(一)首先说最小生成树,两种算法: 1.Kruskal算法( 将边排序,然后再选,关键在于检查是否连通,使用并查集) 2.Prim算法(使用点集,有点类似与最短路的算法) 第一题是并查集算法的使用:A - The Suspects Time Limit:1000MS M...
分类:
编程语言 时间:
2016-01-24 10:20:19
阅读次数:
925
源代码:#include#includeint m,n,i[1001][1001],h[1001];bool f[1001]={0};long long ans(0);int main(){ memset(i,0x7f,sizeof(i)); memset(h,0x7f,sizeof(h)); //...
分类:
编程语言 时间:
2016-01-04 22:24:23
阅读次数:
188
codevs.cn 最优布线问题#include#include bool u[101]; int g[101][101],minn[101]; int main(){ int n,m,q,p,total=0; scanf("%d%d",&n,&m); for (int i=1;i<=m...
分类:
编程语言 时间:
2015-12-28 23:30:35
阅读次数:
240
d.n个村庄,n*(n-1)/2条路,建立一些路使所有村庄可达。求建立路这些路的最小花费。s.最小生成树c.Prim算法:cost[a][b]和cost[b][a]都得赋值。/*Prim算法Prim求MST耗费矩阵cost[][],标号从0开始,0~n-1返回最小生成树的权值,返回-1表示原图不连通...
分类:
其他好文 时间:
2015-12-04 20:12:39
阅读次数:
141
d.c个小岛,通过建立桥,使其全部可达。求所有的桥的最小长度和。s.最小生成树,数据改成double就行了c.Prim算法:cost[a][b]和cost[b][a]都得赋值。/*Prim算法Prim求MST耗费矩阵cost[][],标号从0开始,0~n-1返回最小生成树的权值,返回-1表示原图不连...
分类:
其他好文 时间:
2015-12-04 18:45:43
阅读次数:
132
d.n个村庄,n*(n-1)/2条路,铺设若干条路,使任何两个村庄都可达。求最小的公路总长度。s.最小生成树c.Prim算法:cost[a][b]和cost[b][a]都得赋值。/*Prim算法Prim求MST耗费矩阵cost[][],标号从0开始,0~n-1返回最小生成树的权值,返回-1表示原图不...
分类:
其他好文 时间:
2015-12-03 22:42:17
阅读次数:
232
可以依次枚举MST上的各条边并删去再求最小生成树,如果结果和第一次求的一样,那就是最小生成树不唯一。用prim算法,时间复杂度O(n^3)。 1 #include 2 #include 3 using namespace std; 4 #define MAXN 111 5 #define INF (...
分类:
其他好文 时间:
2015-11-29 23:07:09
阅读次数:
185
看图便知道:来来上代码:#include #include #include using namespace std;int main(){ int n; while(~scanf("%d",&n)) { int tu[n+1][n+1]; for(int i=1; i<=n; i...
分类:
编程语言 时间:
2015-11-28 18:20:13
阅读次数:
160
Kruskal算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪婪算法的应用。和Boruvka算法不同的地方是,Kruskal算法在图中存在相同权值的边时也有效。时间复杂度:elog2e e为图...
分类:
其他好文 时间:
2015-11-26 15:10:17
阅读次数:
131
Prim算法是求图(无向图)中最小生成树的一种算法,另外一种是Kruskal算法。
Prim算法思想:Prim算法的每一步都会为一棵生长中的树添加一条边。一开始这棵树只有一个顶点,然后会向它添加V-1条边,每次总是将下一条连接树中的顶点与不在树中的顶点且权重最小的边加入树中。
源代码示例:
#include
#include
#include
#incl...
分类:
编程语言 时间:
2015-11-16 15:54:17
阅读次数:
246