最小生成树prime算法模板】的更多相关文章

#include<stdio.h> #include<string.h> using namespace std; int map[505][505]; int v, e; int prime() { bool vis[505]; int dist[505]; int i,j,sum=0; for(i=1;i<=v;i++) { vis[i]=0; //先假设编号为1的点加入MST dist[i]=map[1][i]; } vis[1]=1; for(i=1;i<v;i…
题目链接:https://vjudge.net/contest/241341#problem/D 这里有多个发电站,需要求出所有点都和发电站直接或间接相连的最小代价,那么就是求出最小生成树的问题了,有点细微的不同是我们一开始要把所有的发电站看成起点(看成一个点),把其他点到发电站的最小代价求出,之后就是模板题了. 代码: #include<iostream> #include<cstring> using namespace std; const int inf=0x3f3f3f;…
用prim算法构建最小生成树适合顶点数据较少而边较多的图(稠密图) prim算法生成连通图的最小生成树模板伪代码: G为图,一般为全局变量,数组d为顶点与集合s的最短距离 Prim(G, d[]){ 初始化; for (循环n次){ u = 使d[u]最小的还未访问的顶点的标号; 记u 已被访问; for(从u出发到达的所有顶点v){ if (v未被访问&&以u为中介点使得v与集合S的嘴短距离d[v]更优){ 将G[u][v]赋值给v与结合S的最短距离d[v]; } } } } 邻接矩阵版…
题目: Out of Hay Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Description The cows have run <= N <= ,) farms (numbered ..N); Bessie starts at Farm . She'll traverse some or all of the M (1 <= M <= 10,000) two-way roads wh…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233 可以用Kruskal来做,不过当图的边比较稠密的时候用prime会更快一些. AC代码:296MS #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int inf=0xffffff; int dis[105],sum,n; int weight[105]…
题目: http://acm.hdu.edu.cn/showproblem.php?pid=1863 注意有可能出现无法生成树的情况. #include <iostream> #include <cstring> using namespace std; const int inf=0xffffff; int weight[105][105],n,m; int prime() { int sum=0; int pre[105]; int dis[105]; bool visit[1…
题目链接:http://poj.org/problem?id=1258 Description Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. Farmer John ordered a high speed…
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<=200000) 接下来M行每行包含三个整数Xi.Yi.Zi,表示有一条长度为Zi的无向边连接结点Xi.Yi 输出格式: 输出包含一个数,即最小生成树的各边的长度之和:如果该图不连通则输出orz 输入输出样例 输入样例#1: 复制 4 5 1 2 2 1 3 2 1 4 3 2 3 4 3 4 3 输出样例#1…
codevs.cn 最优布线问题 #include<cstdio>#include<cstring> 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;i++) {  scanf("%d%d",&q,&p);  scanf("…
 题目链接 /* Name:hdu-1102-Constructing Roads Copyright: Author: Date: 2018/4/18 9:35:08 Description: prime算法模板 */ #include <iostream> #include <cstdio> #include <cstring> #include <utility> #include <vector> using namespace std;…