Arctic Network--POJ(最小生成树)
来源:互联网 发布:php应用开发 编辑:程序博客网 时间:2024/05/29 15:39
/****
http://acm.hust.edu.cn/vjudge/contest/124173#problem/M
Description
国防部(DND)要用无线网络连接北部几个哨所。两种不同的通信技术被用于建立网络:每一个哨所有一个无线电收发器,一些哨所将有一个卫星频道。
任何两个有卫星信道的哨所可以通过卫星进行通信,而不管他们的位置。同时,当两个哨所之间的距离不超过D时可以通过无线电通讯,D取决于对收发器的功率。功率越大,D也越大,但成本更高。出于采购和维修的方便,所有哨所的收发器必须是相同的;那就是说,D值对每一个哨所相同。
的任务是确定收发器的D的最小值。每对哨所间至少要有一条通信线路(直接或间接)。
Input
输入的第一行是测试数据的数量N。
每组测试数据的第一行包含卫星频道的数量S(1 < = S < = 100)和哨所的数量P(S < P < = 500)。接下来的P行,给出以公里为单位的每个哨所的坐标(x,y)( 坐标为0到10000之间的整数)。
Output
对于每组测试数据,输出一行,输出收发器的D的最小值。精确到小数点后两位。
Sample Input
1
2 4
0 100
0 300
0 600
150 750
Sample Output
212.13
*****/
题目大意,求最小把所以空间站连起来的最小距离中的最大边。
题目大意,求最小把所以空间站连起来的最小距离中的最大边。
思路:先求最小生成树,在把最大的边给去掉,如果有大于 1 的S就可以使D减小,先把最大的边的两个点用S占据,在从新找最大边,会发现只需要把新的最大边的一个顶点与开始的最大边的一个顶点连接就行。所以就可以减少 S-2+1=S-1条边。
#include <iostream>#include<stdio.h>#include<math.h>#include<string.h>#include<cmath>#include<algorithm>#include<iomanip>#define inf 5100using namespace std;double store[inf][inf], coor[inf][2],digt[inf];int mark[inf],path[inf];int main(){ int T; cin>>T; while(T--) { int S,N; scanf("%d%d",&S,&N); for(int i=1; i<=N; i++) { scanf("%lf%lf",&coor[i][0],&coor[i][1]); } for(int i=1; i<=N; i++) { double x1,y1,x2,y2,l; x1=coor[i][0]; y1=coor[i][1]; for(int r=1; r<=N; r++) { x2=coor[r][0]; y2=coor[r][1]; l=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); store[i][r]=l; } } ///------------ for(int i=1; i<=N; i++) { path[i]=1; digt[i]=store[1][i]; } memset(mark,0,sizeof(mark)); mark[1]=1; ///--------------- for(int t=1; t<N; t++) { int V; double M=100000000.0; for(int i=1; i<=N; i++) { if(!mark[i]&&M>digt[i]) { M=digt[i]; V=i; } } if(t==1) path[V]=1; mark[V]=1; for(int i=1; i<=N; i++) { if(!mark[i]&&digt[i]>store[V][i]) { digt[i]=store[V][i]; path[i]=V; } } } sort(digt+1,digt+N+1); int J=S-1; printf("%.2lf\n",digt[N-J]); } return 0;}
0 0
- POJ 2349 Arctic Network [最小生成树]
- poj 2349 (最小生成树)Arctic Network
- POJ-2349 Arctic Network 最小生成树
- POJ 2349 Arctic Network 最小生成树
- poj-2349 Arctic Network 最小生成树
- poj 2349 Arctic Network 最小生成树
- poj 2349 Arctic Network 最小生成树
- poj 2349 Arctic Network 最小生成树~~
- POJ Arctic Network 【最小生成树】
- Arctic Network (poj 2349 最小生成树)
- POJ 2349Arctic Network【最小生成树】
- Arctic Network--POJ(最小生成树)
- 【最小生成树】POJ 2349 Arctic Network
- POJ 2349 Arctic Network 最小生成树
- POJ-2349-Arctic Network [最小生成树]
- POJ 2349 Arctic Network (最小生成树)
- POJ 2349 Arctic Network (最小生成树)
- poj 2349 Arctic Network(最小瓶颈生成树)
- TextView设部分文字的点击事件
- 反黑教程:手把手教你应对搜索引擎劫持攻击
- 控制台终端
- JavaScript小技巧
- 代码实现控件的边距
- Arctic Network--POJ(最小生成树)
- 关于对cpu的理解和kvm虚拟机到物理cpu的绑定
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- hdu 3729(二分图最大匹配+最大字典序)
- android翻译
- 组件化 资料
- nginx 后端服务器配置端口 request.getserverPort
- 【正则表达式】从字符串中提取数字
- [2016/7/28][dp]动态规划入门练习题