poj2349 Arctic Network 最小生成树
来源:互联网 发布:心事谁人知原唱 编辑:程序博客网 时间:2024/05/19 16:37
poj2349
表示刚开始读题就读了n久没有读明白。。。明白了题意以后这题真真是个套模板的题
题意:哨站有两种通信方式:通过卫星和通过建立无线网络,通过卫星可以任意通信,
通过无线网络那么距离不能超过D,求这个最小距离D。
思路:s代表了可以扔掉s-1条边,p表示点
我采用了kruskal算法,在建立好的最小生成树中去掉s-1条边,那么返回上一个的权值w即可。
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;const int maxn=200005;const int maxm=200005;int m,n;int f[550];struct node{ int x; int y;} data[550];struct Edge{ int u,v; double w;} edge[500005],e[500005];int tol;void addedge(int u,int v,double w){ edge[tol].v=v; edge[tol].u=u; edge[tol++].w=w;}bool cmp1(Edge aa,Edge bb){ return aa.w<bb.w;}int find(int x){ return x==f[x]?x:f[x]=find(f[x]);}double kruskal(int n){ for(int i=0; i<n; i++) f[i]=i; int cnt=0; double ans=0; for(int i=0; i<tol; i++) { int u=edge[i].u; int v=edge[i].v; double w=edge[i].w; int a=find(u); int b=find(v); if(a!=b) { //ans+=w; e[cnt].u=u; e[cnt].v=v; e[cnt].w=w; f[b]=a; cnt++; } if(cnt==n-1) { return e[cnt-m].w; } } //if(cnt<n-1) return -1; //return ans;}int main(){ int t; while(scanf("%d",&t)!=-1) { while(t--) { scanf("%d%d",&m,&n); tol=0; for(int i=0; i<n; i++) { scanf("%d%d",&data[i].x,&data[i].y); } double temp; for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { if(i==j) continue; else { double w=sqrt((double)(data[i].x-data[j].x)*(data[i].x-data[j].x) +(double)(data[i].y-data[j].y)*(data[i].y-data[j].y)); addedge(i,j,w); } } } sort(edge,edge+tol,cmp1); double small=kruskal(n); printf("%.2f\n",small);//如果是G++那么一定要%f,不能%lf } } return 0;}
0 0
- 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】【图论】
- 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
- Linux平台VPN技术概论
- Python高级数据结构之Array
- 数据库隔离级别,以及在并发情况下的异常情况
- 编程基础题-1
- 如何选择合适的算法
- poj2349 Arctic Network 最小生成树
- weblogic BEA-170011
- Centos6.3下安装Oracle11g记录
- flash将库中图片通过程序进行加载
- 银行借我钱花
- Mac版WebStorm安装
- BootStrap基础
- js实现键盘控制移动div
- rel="stylesheet" 是什么意思?