zoj 1203 Swordfish_最小生成树
来源:互联网 发布:mysql 合计 编辑:程序博客网 时间:2024/06/01 07:26
首先我觉得这题格式超级坑,另外就是要注意权值是浮点型!!!
#include <iostream>#include <algorithm>#include <iomanip>#include <cstring>#include <cmath>using namespace std;int n;int Father[5005];struct node{ int u,v; double w;};node Edge[5005];bool cmp(node a,node b){ return a.w<b.w;}double dist(double x1,double y1,double x2,double y2) //求(x1,y1)和(x2,y2)之间的距离{ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}void MakeSet() //下面三个函数是并查集 判断时候会生成环{ for(int i=1; i<=n; i++) Father[i]=i;}int Find(int x){ while(x!=Father[x]) x=Father[x]; return x;}void Union(int x,int y){ int a=Find(x); int b=Find(y); if(a!=b) Father[a]=b;}int main(){ int t,i,j,k,x,y,z,p=1,d=0; double a[5005],b[5005]; while(cin>>t,t) { x=0,y=0,z=0; double sum=0; n=t*(t-1)/2; MakeSet(); //很容易忘记写!! for(i=1; i<=t; i++) cin>>a[i]>>b[i]; for(i=1; i<=t; i++) //将任意两点间的距离和顶点放入结构体里面 for(j=i+1; j<=t; j++) { Edge[x++].u=i; Edge[y++].v=j; Edge[z++].w=dist(a[i],b[i],a[j],b[j]); } sort(Edge,Edge+n,cmp); for(k=0; k<n; k++) if(Find(Edge[k].u)!=Find(Edge[k].v)) { sum=sum+Edge[k].w; Union(Edge[k].u,Edge[k].v); } if(d>0) //控制格式(超级坑!!!) cout<<endl; cout<<"Case #"<<p++<<":"<<endl; cout<<"The minimal distance is: "; cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl; d++; } return 0;}
0 0
- zoj 1203 Swordfish_最小生成树
- ZOJ 1203 最小生成树
- zoj 1203 swordfish 最小生成树
- ZOJ 1203 Swordfish(最小生成树 kruskal)
- ZOJ 1203 Swordfish【最小生成树】
- zoj 1406 最小生成树
- zoj 1258 最小生成树
- ZOJ 1586(最小生成树)
- ZOJ 1203 Swordfish (最小生成树 prim算法)
- ZOJ - 1203 Swordfish (最小生成树 Prim)
- zoj 1203 Swordfish(最小生成树))
- zoj 1203 Swordfish 【最小生成树 kruskal && prim】
- ZOJ 1203 Swordfish 最小生成树 Kruscal && Prim
- ZOJ 1406 Jungle Roads (最小生成树)
- zoj 1406 Jungle Roads 最小生成树
- zoj 1372 (最小生成树)
- zoj 3204 Connect them//最小生成树
- ZOJ 1406 Jungle Roads (最小生成树)
- 并查集(Union-Find)算法介绍
- iOS截取图片中的某一部分
- C8051FXX启动文件详细注释
- java 监测工具-------------------jdk自带的强悍工具jvisualvm
- 如何使用Windows Azure Media Service进行开发(2)
- zoj 1203 Swordfish_最小生成树
- 励志与鸡汤
- undefined reference to 'vlc_entry__access_output_udp'
- POJ 3259 Wormholes (Bellman-ford或SPFA)
- XML 和 HTML 的区别?
- Android应用如何支持屏幕多尺寸多分辨率问题
- 利用POI将数据库表结构信息导入excel模板中
- HDU4858美素数
- Windows中无法触发DragDrop事件的问题