POJ2349 Arctic Network
来源:互联网 发布:mac上android真机调试 编辑:程序博客网 时间:2024/06/05 17:55
题目:http://poj.org/problem?id=2349
分析:二分+并查集
代码:
#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>using namespace std;const int Tmax=505;const double Q=0.0001;struct edge{ int u,v; double w; bool operator <(const edge &rhs)const { return w<rhs.w; }};edge G[Tmax*Tmax];int n,s,m,data[Tmax][2],f[Tmax];double dmax;bool num[Tmax];int find(int x){ return f[x]=f[x]==x?x:find(f[x]);}bool check(double x){ int i,fx,fy,sum=0; for(i=1;i<=n;i++) f[i]=i; for(i=1;i<=m;i++) { if(G[i].w-x>Q) break; fx=find(G[i].u); fy=find(G[i].v); if(fx==fy) continue; f[fx]=fy; } memset(num,0,sizeof(num)); for(i=1;i<=n;i++) { if(num[find(i)]==true) continue; sum++; num[find(i)]=true; } if(sum<=s) return true; return false;}void work(){ double l=0,r=dmax,mid; while(r-l>=Q) { mid=(l+r)/2; if(check(mid)==true) r=mid; else l=mid+Q; } printf("%.2lf\n",r); return;}int main(){ int T,i,j; double d; scanf("%d",&T); while(T--) { scanf("%d%d",&s,&n); m=0; for(i=1;i<=n;i++) scanf("%d%d",&data[i][0],&data[i][1]); for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { d=sqrt(1.0*(data[i][0]-data[j][0])*(data[i][0]-data[j][0])+1.0*(data[i][1]-data[j][1])*(data[i][1]-data[j][1])); G[++m].u=i; G[m].v=j; G[m].w=d; dmax=max(dmax,d); } sort(G+1,G+1+m); work(); } return 0;}
0 0
- POJ2349 Arctic Network
- POJ2349--Arctic Network
- POJ2349---Arctic Network
- POJ2349,ZOJ1914,Arctic Network
- POJ2349 Arctic Network
- poj2349 Arctic Network
- POJ2349 Arctic Network
- poj2349 Arctic Network
- poj2349 Arctic Network 最小生成树,kruskal
- POJ2349&ZOJ1914--Arctic Network【最小生成树】
- poj2349 Arctic Network(最小生成树)
- [poj2349 Arctic Network]最小生成树
- POJ2349 Arctic Network 最小生成树
- poj2349:Arctic Network(最小生成树)
- POJ2349 Arctic Network(最小生成树,Kruskal)
- poj2349 Arctic Network 最小生成树
- poj2349——Arctic Network(最小生成树+prim)
- POJ2349 Arctic Network 题解【最小生成树】【Kruskal】【图论】
- linux设备号详解
- HDFS 2.7.1 所有shell命令
- signal(SIGCLD,SIG_IGN) http://blog.csdn.net/cffishappy/article/details/7005115
- 使用autolayout自定义动态高度的cell
- A Multiplication Game 1517 (博弈+规律)
- POJ2349 Arctic Network
- sort
- L0/L1/L2/无穷范数
- 查找(三)hash 与map
- 编写一个程序,打印输入中各个字符出现的频度的直方图
- java设计模式:观察者模式
- hihocoder #1066 : 无间道之并查集
- iOS开发UI系列之KVC/KVO
- Stick