POJ 2253 Frogger
来源:互联网 发布:mysql时间转换成毫秒值 编辑:程序博客网 时间:2024/05/29 17:34
题目链接:http://poj.org/problem?id=2253
题意:
求:所有到达目的地路径中边权值最大的集合中 最小的那个值
换句话说 就是求最短路径中出现的最大权值.
只需要更改dijkstra的更新条件:
/*最短路中的最长边改变更新条件原来:if(!vis[j]&&dis[j]>dis[pos]+G[pos][j]) dis[j]=dis[pos]+G[pos][j];改为if(!vis[j]&&dis[j]>max(dis[pos],G[pos][j])) dis[j]=max(dis[pos],G[pos][j]);此时,dis[]存的是到达第k个数的最长边的最小值*/
/*最短路中的最长边改变更新条件原来:if(!vis[j]&&dis[j]>dis[pos]+G[pos][j]) dis[j]=dis[pos]+G[pos][j];改为if(!vis[j]&&dis[j]>max(dis[pos],G[pos][j])) dis[j]=max(dis[pos],G[pos][j]);此时,dis[]存的是到达第k个数的最长边的最小值*/#include<cstdio>#include<cmath>#define INF 1000000000const int N=201;struct node{ double x,y; int i;};double max(double a,double b){return a>b?a:b;}node f[N];double G[N][N];double low[N];void calc(const node &a,const node &b){ double dis=sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)); G[a.i][b.i]=G[b.i][a.i]=dis;}double dijkstra(int s,int e,int n){ double dis[N]; bool vis[N]={0}; int pos=0,i,j; double minn; for(int i=0;i<n;++i) dis[i]=G[pos][i]; vis[pos]=true; dis[s]=0; for(i=1;i<n;++i){ for(minn=INF,j=0;j<n;++j){ if(!vis[j]&&dis[j]<minn){ minn=dis[j]; pos=j; } } vis[pos]=true; for(j=0;j<n;++j)if(!vis[j]){ if(dis[j]>max(G[pos][j],dis[pos])){ dis[j]=max(G[pos][j],dis[pos]); } } //printf("dis[0]:%lf dis[1]:%lf dis[2]=%lf\n",dis[0],dis[1],dis[2]); } return dis[e];}int main(){ int n,cnt=0; while(scanf("%d",&n),n){ for(int i=0;i<n;++i){ scanf("%lf %lf", &f[i].x,&f[i].y); f[i].i=i; } for(int i=0;i<n;++i) for(int j=0;j<n;++j) G[i][j]=INF; for(int j=0;j<n;++j) for(int i=j+1;i<n;++i){ calc(f[j],f[i]); } double ans=dijkstra(0,1,n); ++cnt; printf("Scenario #%d\n",cnt); printf("Frog Distance = %.3lf\n\n",ans); }}
0 0
- poj 2253 - Frogger --- SPFA
- poj 2253 - Frogger --- dijkstra
- POJ 2253 Frogger
- poj 2253 Frogger
- poj 2253 Frogger
- poj 2253 Frogger
- POJ 2253 Frogger Floyd
- poj 2253 : Frogger (dijkstra)
- Poj 2253 Frogger
- POJ 2253 Frogger
- poj 2253 Frogger
- poj 2253 Frogger
- poj 2253 Frogger
- poj 2253 Frogger
- poj-2253-Frogger
- POJ 2253 Frogger
- POJ 2253 Frogger
- POJ 2253 Frogger
- Toxophily(纯粹的物理公式 + 一元二次方程)
- 设计模式中类的关系
- UVA - 107 The Cat in the Hat
- js中通过构造函数创建对象
- Nginx(二)通过SVN获得Nginx源码
- POJ 2253 Frogger
- IO流缓冲区对象的使用和理解。
- 数据库命令大全
- 北京实习回来的感想
- 建立词索引表
- 规划和减肥法
- floyd模板
- 羊毛出在狗身上猪来买单
- 黑马程序员——String类