收获:
prim是从某一点开始选最短的,然后依次增加节点,直到连通
Krustal是从一开始就选择最短的路径,不判断点是否存在
1.还是要注意find函数
别的耗费内存太大,就只能用
2.
)
代码:
一、优先队列
//畅通工程之局部最小花费问题
//并查集+prim算法
//或者并查集+优先队列
#include<iostream>
#include<queue>
using namespace std;
#define N 105
int n;
int pre[N];
struct edge
{
int u, v;
int cost;
friend bool operator < (edge a, edge b)
{
return a.cost > b.cost;
}
} Edge;
void Init(int n)
{
for(int i=1; i<=n; i++)
pre[i]=i;
}
int find(int x)
{
while(x!=pre[x])
x=pre[x];
return x;
}
/*
int fi