POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
来源:互联网 发布:windows 7 原版下载 编辑:程序博客网 时间:2024/05/22 15:01
题目链接:poj2253
题意:给出n个坐标,要求是从第一个坐标到达第二个坐标,可以通过其他坐标,求每条路径中任意两点距离最大值的最小值 Dijkstra变形
思路:用pair存坐标 然后i个点到第j个点的距离直接勾股定理计算存value【i】【j】,接下的即Dijkstra,中间的更新改为
if(!vis[j]&&dis[j]>max(dis[pos],value[pos][j]))
{
dis[j]=max(dis[pos],value[pos][j]);
}
即dis数组存的是从第1个点到该点的间隔的最大距离
#include<iostream>#include<cmath>#include<cstdio>#include<iomanip>#include<cstring>#include<stdlib.h>#include<string>#include<algorithm>#include<queue>using namespace std;#define MAXN 4500#define INF 0xFFFFFFFdouble value[MAXN][MAXN];/*保存的是边权值*/double dis[MAXN];/*保存源点到任意点之间的最短路*/int vis[MAXN];/*记录顶点是否没取过*/int n,m;pair<int,int>p[MAXN];double getdis(int i,int j){double sum=0;sum=sqrt((double)((p[i].first-p[j].first)*(p[i].first-p[j].first)+(p[i].second-p[j].second)*(p[i].second-p[j].second)));return sum;}void dijkstra(){memset(vis,false,sizeof vis);for(int i=0;i<n;i++){dis[i]=INF;}dis[0]=0;for(int i=1;i<=n;i++){int pos=-1;for(int j=0;j<n;j++){if(!vis[j]&&(pos==-1||dis[j]<dis[pos])){pos=j;}}vis[pos]=true;for(int j=0;j<n;j++){if(!vis[j]&&dis[j]>max(dis[pos],value[pos][j])){dis[j]=max(dis[pos],value[pos][j]);}}}}int main(){int k=0;while(~scanf("%d",&n),n!=0){k++;for(int i=0;i<n;i++){scanf("%d%d",&p[i].first,&p[i].second);//将坐标存入pair的数组中}for(int i=0;i<n;i++){for(int j=0;j<n;j++){value[j][i]=value[i][j]=getdis(i,j);}}dijkstra();printf("Scenario #%d\n",k);printf("Frog Distance = %.3f\n\n",dis[1]);}return 0;}
阅读全文
0 0
- POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
- POJ 2253:Frogger 求每一条路径最大值里面的最小值
- [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
- (POJ 2253)Frogger 求所有可达路径中的最大边的最小值 dijkstra || floyd 变形
- POJ 2253 Frogger(dijkstra变形)
- POJ 2253 Frogger dijkstra 变形
- POJ 2253 Frogger(Dijkstra变形)
- POJ 2253 Frogger (dijkstra变形)
- poj-2253 Frogger(dijkstra变形)
- POJ 2253 Frogger Dijkstra变形
- POJ 2253 Frogger 最短路-Dijkstra的变形形式
- POJ 2253 Frogger (单源最短路变型 求路径上最大边权值的最小值)
- POJ 2253 Frogger(dijkstra变形)
- poj 2253 Frogger(dijkstra变形,好题)
- POJ 2253 - Frogger(dijkstra变形)
- poj 2253 Frogger(dijkstra变形)
- POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
- poj2522 Frogger(最短路变形 所有路径中最长边的最小值)
- Node.js调用debug组件启动调试模式
- 如何使用git 生成patch
- ubuntu16.04搭建VPN服务器
- 在O(1)时间删除链表结点
- javascript的dom操作—增删改查
- POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
- Java语言基础(六)
- ajax——登录系统 用户名是否存在校验
- tensorflow自定义op:work_shard
- Unity自定义UI组件(九) 颜色拾取器(下)
- css边距属性
- jzoj. 1301. treecut
- NumPy使用
- WEB标准要求