题目链接:
【题目大意】
给你n个点的坐标,忽视其中一个点,求余下点的最小生成树。
我们不知道忽视的是哪一个点,所以要进行n次最小生成树。
prim算法需要使用一个标记数组 intree ,我们只要把忽视的那个点放入intree就不会扫描了;
【源代码】
#include#include #include #include #include using namespace std;const int maxn = 55;struct node{ int x,y;}PP[maxn];const double INF = 100000000.0;double G[maxn][maxn];bool intree[maxn];double minDist[maxn];int n;double distane(node a,node b){ return sqrt((double)(a.x-b.x)*(a.x-b.x)+(double)(a.y-b.y)*(a.y-b.y));}double prim(int x){ double sum=0; intree[x]=1; if(x!=0){//如果忽视的点不是 0 for(int i=0;i