题目描述
使用Prim算法求图的最小生成树(MST)
输入
每组数据分为两个部分,第一部分为图的点数n,和边数m,
第二部分为m行,每一行输入三个数字,前两个为两个顶点的编号,第三个为边权重。
输出
最小生成树,输出时按照边的两个端点的升序输出。(先看左端点,再看右端点,端点不换位置)
样例输入 Copy
3 3
0 1 10
0 2 15
1 2 50
样例输出 Copy
0 1 10
0 2 15
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node{//用来保存符合要求的答案
int X;
int Y;
int V;
};
struct bian{//用来保存原始边的信息
int X;
int Y;
int V;
};
node a[1000];
bian b[1000];
bool cmp(node a,node b){
if(a.X==b.X)
return a.Y<b.Y;
return a.X<b.X;
}
int main()
{
int i,j,k,temp;
int n,m;
int E1,E2;
int V;
while(scanf("%d %d",&n,&m)!=EOF){
int s[n+1];
int G[n+1][n&#