uva10034
来源:互联网 发布:java sort 编辑:程序博客网 时间:2024/05/20 07:18
#include <iostream>#include <math.h>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;struct Node{ double x,y;};Node node[110];int u[110*110];int v[110*110];double w[110*110];int p[110];int r[110*110];int n,m;int cmp(const int i,const int j){ return w[i]<w[j];}int find(int x){ return p[x]==x?x:p[x]=find(p[x]);}double kruskal(){ memset(p,0,sizeof(p)); memset(r,0,sizeof(r)); int x,y,i; double ans=0; for(i=1;i<=n;i++) p[i]=i; for(i=1;i<m;i++) r[i]=i; sort(r+1,r+m,cmp); for(i=1;i<m;i++) { int e=r[i]; x=find(u[e]); y=find(v[e]); if(x!=y) { ans+=w[e]; p[x]=y; } } return ans;}int main(){ //freopen("debug\\in.txt","r",stdin); //freopen("debug\\out.txt","w",stdout); int cases;cin>>cases; while(cases--) { cin>>n; for(int i=1;i<=n;i++) cin>>node[i].x>>node[i].y; m=1;//这个m带来的bug找了好久……还是要规范写啊,最后m代表的不是边数量了,而是边数量+1! for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) { u[m]=i; v[m]=j; double dx=node[i].x-node[j].x; double dy=node[i].y-node[j].y; w[m++]=sqrt(dx*dx+dy*dy); } if(cases) printf("%.2lf\n\n",kruskal()); else printf("%.2lf\n",kruskal()); } return 0;}/*278-70.2 24.116.8 -12.7-40.7 -78.1-64.6 -83.3-60.9 -60.444.3 66.41.4 -79.5-53.2 46.167.1 75.974.8 -66.070.1 59.691.8 87.1-76.8 -35.987.7 -18.50.3 -24.6-9.3 18.0-96.6 57.863.9 2.815.4 -34.040.8 85.053.7 58.9-65.0 1.8-94.8 -10.1-7.4 -93.4-43.4 74.1-50.4 36.029.6 85.2-78.7 -78.7-1.1 27.0-56.2 95.5-40.0 -36.0-59.6 24.9-88.5 -85.3-4.9 57.60.5 68.546.2 18.610.4 48.1-91.7 -81.180.0 59.281.8 37.3-40.5 0.517.6 -85.151.4 -3.027.4 57.4-38.2 24.775.4 -89.1-47.6 7.7-10.2 -88.3-27.5 -61.9-29.4 -38.6-47.9 95.2-63.9 -27.2-30.2 -69.58.3 29.110.8 19.8-7.8 7.482.3 -29.5-54.6 94.0-60.4 -69.140.5 62.3-13.6 13.018.2 13.0-95.9 28.311.5 -3.6-80.1 81.158.2 -76.11.6 -12.6-92.3 -46.0-81.2 -26.3-83.6 32.0-48.7 53.4-54.9 41.4-31.3 27.655.2 -89.166.1 77.7-81.9 17.584.1 91.1-2.9 -3.0272.1 42.5-34.6 38.0-74.8 63.785.6 -77.857.3 -12.2-18.3 -67.9-83.4 91.3-68.4 -95.752.8 83.799.2 -66.6-92.3 26.3-51.2 -72.88.2 25.038.8 31.743.1 -41.6-49.7 74.0-17.6 73.9-53.6 63.4-13.7 -46.120.4 72.227.9 -24.1-2.3 -59.497.4 71.2-47.8 -65.22.8 -97.218.4 -85.4-13.3 72.8*/
阅读全文
0 0
- UVa10034
- uva10034
- uva10034
- uva10034
- uva10034 - Freckles
- UVa10034 Freckles
- UVa10034 Freckles
- uva10034 Freckles
- uva10034 - Freckles(斑点)
- 最小生成树-Uva10034
- uva10034 最小生成树
- uva10034(并查集)
- UVA10034 - Freckles(最小生成树)
- UVa10034/POJ2560_Freckles(最小生成树)(小白书图论专题)
- STM32F103mini教程学习总结与心得(二)---->串口通信
- 十年,又回到原点,也许是个新的起点
- AVG , COUNT,GROUP的简单用法案例
- "无法解析的外部符号" 和 "This function or variable may be unsafe"
- unity 《专题系列》资源打包 Asset Bundles 第四节 Asset Bundles 加载manifest
- uva10034
- python3安装文件遇到ssl未安装问题
- Jersey 发布rest服务接口
- Redis的7个应用场景,那些让人发疯的SQL,都可以扔掉了
- stack栈和stack栈数组
- 流操作
- ubuntu浏览器突然使用不了搜狗拼音法
- codeforces 750New Year and Hurry
- Shell中TMOUT变量的一个小应用