最小生成树 Prim (hdu 1875)
来源:互联网 发布:电信4g网络好用吗 编辑:程序博客网 时间:2024/05/29 07:45
题意就不解释了。直接用最小生成树。
代码如下
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <iostream>using namespace std;#define N 101#define M 100000struct sa{ int a,b;}data[N];double map[N][N];int n;int tol;int set[N];int find (int x){ return set[x]=(set[x]==x?x:find(set[x]));}void merge(int a,int b){ int x=find(a),y=find(b); if(x!=y) { set[x]=y; tol--; }}void mst()//最小生成树 Prim算法 { bool flag[N]; double lowlen[N]; int node[N]; int i,j; double min; for(i=0;i<n;++i) { flag[i]=false; } flag[0]=true; int count=n; double sum=0; for(i=1;i<n;++i) { lowlen[i]=map[0][i]; node[i]=0; } while(--count) { min=M; j=0; for(i=0;i<n;++i) { if(!flag[i] && lowlen[i]<min ) { min=lowlen[i]; j=i; } } sum+=map[j][node[j]]; flag[j]=true; for(i=0;i<n;++i) { if(!flag[i] && lowlen[i]>map[i][j] ) { lowlen[i]=map[i][j]; node[i]=j; } } } sum=sum*100; printf("%.1f\n",sum);} int main(){ int m; scanf("%d",&m); while(m--) { double ss=0; int i,j; scanf("%d",&n); tol=n-1; for(i=0;i<n;i++) for(j=0;j<n;j++) map[i][j]=M; for(i=1;i<=n;i++) { scanf("%d%d",&data[i].a,&data[i].b); set[i]=i; } for(i=1;i<n;i++) for(j=i+1;j<=n;j++) { ss=sqrt( ((data[j].a-data[i].a)*(data[j].a-data[i].a) + (data[j].b-data[i].b)*(data[j].b-data[i].b)) ); if(ss>=10 && ss<=1000) { merge(i,j); map[i-1][j-1]=map[j-1][i-1]=ss; } } if(tol>0) { printf("oh!\n"); continue; } mst(); } return 0;}
- HDU-1875 最小生成树 PRIM
- 最小生成树 Prim (hdu 1875)
- 【最小生成树】hdu 1875 prim
- hdu 1875 畅通工程再续(最小生成树Prim)
- hdu 1875畅通工程再续-prim最小生成树
- hdu 1875 畅通工程再续 最小生成树prim
- HDU 1875 畅通工程再续 Prim最小生成树
- hdu 1875 畅通工程再续 【最小生成树-prim】
- HDU 3371(最小生成树,Prim)
- HDU-1233(prim求最小生成树)
- HDU-1879(prim构最小生成树)
- HDU-1102(prim求最小生成树)
- HDU 1233 prim kruskal最小生成树
- HDU 1863 prim最小生成树
- HDU 1879 最小生成树 prim + kruskal
- hdu 1879 最小生成树 prim
- hdu 1233 最小生成树Prim算法
- hdu 4463 最小生成树 prim
- 使用系统存储过程 及 自定义存储过程 “usp_Helloworld”
- (转)Linux下使用system()函数,谨慎使用
- == LISP语言学习网站 ==
- SQL Server &Oracle关闭其他客户端连接的方法
- C语言-指针
- 最小生成树 Prim (hdu 1875)
- osql 用法
- WEB-js2
- hdu4460
- HttpClient 学习整理
- smarty
- hoare管程实现电梯调度
- c#分页
- 元对象编译器moc