uva 10034 Freckles 最小生成树

#include <bits/stdc++.h>using namespace std;int n;double x[105],y[105];double d[105];int used[105];double ma[105][105];double mst(){d[0] = 0.0;double ans = 0.0;for(int i = 0;i < n;i++){double min = DBL_MAX;int minn;for(int j = 0;j < n;j++){if(!used[j] && d[j] < min){min = d[j];minn = j;}}used[minn] = 1;ans += min;for(int j = 0;j < n;j++){if(!used[j] && d[j] > ma[minn][j]){d[j]= ma[minn][j];}} }return ans;}int main(){int t;cin >> t;while(t–){cin >> n;for(int i = 0;i < n;i++){scanf("%lf%lf",&x[i],&y[i]);}for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){ma[i][j] = sqrt((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));}}for(int i = 0;i < n+1;i++){d[i] = DBL_MAX;} memset(used,0,sizeof(used));printf("%.2f\n",mst());if(t){printf("\n");}} return 0;}

,游手好闲会使人心智生锈

uva 10034 Freckles 最小生成树

相关文章:

你感兴趣的文章:

标签云: