POJ 2349 Arctic Network(Prim算法)
来源:互联网 发布:讯宝采集 软件 编辑:程序博客网 时间:2024/06/10 10:35
Description
Any two outposts with a satellite channel can communicate via the satellite, regardless of their location. Otherwise, two outposts can communicate by radio only if the distance between them does not exceed D, which depends of the power of the transceivers. Higher power yields higher D but costs more. Due to purchasing and maintenance considerations, the transceivers at the outposts must be identical; that is, the value of D is the same for every pair of outposts.
Your job is to determine the minimum D required for the transceivers. There must be at least one communication path (direct or indirect) between every pair of outposts.
Input
Output
Sample Input
12 40 1000 3000 600150 750
Sample Output
212.13
Source
//Prim算法
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const double INF = 1<<30;
const int MAX = 505;
struct point {
double x, y;
}pnt[MAX];
double dist[MAX][MAX], lowcost[MAX], res[MAX];
bool visited[MAX];
int P, S, cnt;
bool cmp(const double a, const double b)
{
return a > b;
}
void Prim()
{
int i, j, k;
cnt = 0;
for(i = 1; i <= P; i++)
lowcost[i] = dist[1][i];
visited[1] = true;
for(i = 1; i < P; i++)
{
double min = INF;
k = 1;
for(j = 2; j <= P; j++)
{
if((!visited[j]) && (lowcost[j] < min))
{
min = lowcost[j];
k = j;
}
}
res[++cnt] = min;
visited[k] = true;
for(j = 2; j <= P; j++)
{
if((!visited[j]) && (lowcost[j] > dist[k][j]))
lowcost[j] = dist[k][j];
}
}
}
int main()
{
int i, j, k, T;
scanf("%d", &T);
while(T--)
{
scanf("%d%d", &S, &P);
for(i = 1; i <= P; i++)
scanf("%lf%lf", &pnt[i].x, &pnt[i].y);
memset(res, 0, sizeof(res));
memset(visited, false, sizeof(visited));
for(i = 1; i < P; i++)
{
for(j = i+1; j <= P; j++)
{
double xx = pnt[i].x - pnt[j].x;
double yy = pnt[i].y - pnt[j].y;
dist[i][j] = sqrt(xx * xx + yy * yy);
dist[j][i] = dist[i][j];
}
}
Prim();
sort(res+1, res+P, cmp);
printf("%.2lf\n", res[S]);
}
return 0;
}
- poj 2349 Arctic Network prim算法做
- POJ 2349 Arctic Network(Prim算法)
- poj 2349 Arctic Network (prim算法)
- POJ - 2349----Arctic Network(prim)
- poj 2349 Arctic Network (prim)
- zoj 1914 || poj 2349 Arctic Network(Prim~)
- POJ 2349 Arctic Network(Prim)
- POJ 2349 Arctic Network(Prim/Kruskal)
- POJ 2349 Arctic Network 最小生成树 prim && kruscal
- POJ 2349 Arctic Network(最小生成树之Prim)
- POJ 2349 Arctic Network 最小生成树 Prim
- 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
- OGRE 1-7-3 Compile with MSVC
- The Singular Secret of the Rockstar Programmer[成为编程巨星的唯一秘诀]
- 获得系统时间
- linux下清空iptables规则具体方法如下:
- memcached 运行状态监控
- POJ 2349 Arctic Network(Prim算法)
- 市场前瞻:$100平板电脑
- 用汇编的眼光看C++(之拷贝、赋值函数)
- Java像QQ把窗口放到屏幕边缘并隐藏
- Android获取外部和内部存储空间总大小
- poj1207(The 3n + 1 problem)
- IT 圈里那些经常被读错的词
- oracle 个人学习笔记
- firefox中隐藏flash导致 flash重新加载的问题