poj 2253 一条路径中的最大边 再找出最小的
题目大意,有两只青蛙,分别在两个石头上,青蛙A想要到青蛙B那儿去,他可以直接跳到B的石头上,也可以跳到其他石头上,再从其他石头跳到B那儿,求青蛙从A到B的所有路径中最小的Frog Distance,我们定义Frog Distance为从A到B的一条路径中最大的一条边
假如点0到点1有3条路
第一条路径 会经过2个点 3条边 边的值为 1 4 3
第二条路径 一条边 5
第三条路径 1 3 2
那么 Frog Distance 分别为 4 5 3 则最终输出3
Sample Input
2
0 0
3 4
3
17 4
19 4
18 5
0
Sample Output
Scenario #1
Frog Distance = 5.000
Scenario #2
Frog Distance = 1.414
# include <iostream>
# include <cstdio>
# include <cstring>
# include <algorithm>
# include <cmath>
# define LL long long
using namespace std ; const int MAXN=;
const double INF=0x3f3f3f3f;
int n ;
bool vis[MAXN];
double cost[MAXN][MAXN] ;
double lowcost[MAXN] ; //保存的是 起点到 i点 所有路径中 最大边中的 最小那条边的权值 struct point
{
int x ;
int y ;
}p[MAXN]; void Dijkstra(int beg)
{
for(int i=;i<n;i++)
{
lowcost[i]=INF;vis[i]=false;
}
lowcost[beg]=;
for(int j=;j<n;j++)
{
int k=-;
double Min=INF;
for(int i=;i<n;i++)
if(!vis[i]&&lowcost[i]<Min)
{
Min=lowcost[i];
k=i;
}
if(k==-)
break ;
vis[k]=true;
for(int i=;i<n;i++)
if(!vis[i]&&max(lowcost[k],cost[k][i])<lowcost[i])
{
lowcost[i]=max(lowcost[k],cost[k][i]);
}
} } double dis(point a,point b)
{
return sqrt((double)(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
} int main ()
{
//freopen("in.txt","r",stdin) ;
int iCase = ;
while (scanf("%d" , &n ) ,n)
{
iCase++ ;
int u , v , w ;
int i , j ;
for (i = ; i < n ; i++)
scanf("%d %d" , &p[i].x , &p[i].y) ; for (i = ; i < n ; i++)
for (j = ; j < n ; j++)
{
if (i == j)
cost[i][j] = ;
else
cost[i][j] = dis(p[i],p[j]) ;
}
Dijkstra() ;
printf("Scenario #%d\nFrog Distance = ",iCase);
printf("%.3lf\n\n",lowcost[]); } return ;
}
poj 2253 一条路径中的最大边 再找出最小的的更多相关文章
- poj 1797 一条路径中的最小边 再找出最大的
Sample Input 1 // T3 3// n m1 2 3//u v w1 3 42 3 5Sample Output Scenario #1:4 # include <iostream ...
- POJ 2253 Frogger【最短路变形/最小生成树的最大权/最小瓶颈树/A到B多条路径中的最小的最长边】
Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sit ...
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
#include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7, ...
- 在由N个元素构成的集合S中,找出最小元素C,满足C=A-B,其中A,B是都集合S中的元素,没找到则返回-1
package bianchengti; /* * 在由N个元素构成的集合S中,找出最小元素C,满足C=A-B, * 其中A,B是都集合S中的元素,没找到则返回-1 */ public class f ...
- POJ 2253 ——Frogger——————【最短路、Dijkstra、最长边最小化】
Frogger Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- 在一个SQL Server表中的多个列找出最大值
在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..# ...
- JAVA中两个Set比较找出交集、差集、并集
当做到某些功能的时候,使用Set能够快速方便地将需要的类型以集合类型保存在一个变量中,Set是最简单的一种集合,集合中的对象不按特定的方式排序,并且没有重复对象. //两个Set比较找出交集.差集.并 ...
- POJ-2253.Frogger.(求每条路径中最大值的最小值,最短路变形)
做到了这个题,感觉网上的博客是真的水,只有kuangbin大神一句话就点醒了我,所以我写这篇博客是为了让最短路的入门者尽快脱坑...... 本题思路:本题是最短路的变形,要求出最短路中的最大跳跃距离, ...
- JAVA冒泡排序/JAVA冒泡排序再找出给定数据中的最大值最小值/JAVA数组排序
//数组中排序 int in[] = {1,6,5,8,9}; Arrays.sort(in); for(int i=0;i<in.length;i++){ Sys ...
随机推荐
- iOS—— iOS 内存管理:增长+泄漏
1.如果是循环中局部变量data没有释放导致的,给NSData 手动添加释放池 @autoreleasepool { your code } 2.url 转变字典key值的时候出现内存暴增! //设置 ...
- HTTTP及TCP的超时以及KEEP-ALIVE机制小结
一.HTTP的超时和Keep Alive HTTP Keepalive 机制是http 1.1中增加的一个功能. 在HTTP 1.0中,客户端每发起一个http 请求,等收到接收方的应答之后就断开TC ...
- git查看各个branch之间的关系
1.pull所有branch for remote in `git branch -r `; do git branch --track $remote; done for remote in `gi ...
- MT【188】一个正切余切有关的恒等式
(2017北大特优)求$9\tan 10^\circ+2\tan 20^\circ+4\tan 40^\circ-\tan 80^\circ=$_____ A.$0$ B.$\dfrac{\sqrt ...
- stm32的双向io口
# stm的io设置为双向问题,将io端口模式配置为 open-drain mode > 在io端口配置为输出模式时,输入通道上的施密特触发器一直是打开的,所以读取IDR是能检测到端口电平的 & ...
- 自动化部署之搭建yum仓
一.导言 YUM主要用于自动安装.升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系.要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库 ...
- Windowd系统下Eclipse CDT+MinGW快速搭建C/C++开发环境
安装MinGW后,最简单的配置:Window -> Preferences -> C/C++ -> Build -> Environment添加Path : $PATH;D:\ ...
- python---django中orm的使用(2)
1.基于对象的正向查询和反向查询 在python---django中orm的使用(1)中也提到了正向和反向查找 表:一对多 书籍和出版社 class Book(models.Model): titl ...
- [转载]VS2013 密钥 – 所有版本
http://www.wxzzz.com/307.html Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visu ...
- 数据绑定和第一个AngularJS Web应用
<!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...