uva 10034 Freckles 最小生成树

来源:互联网 发布:中国移动网络发展战略 编辑:程序博客网 时间:2024/04/29 09:05
#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;}


0 0
原创粉丝点击