poj 2253 Frogger floyd 长路求权值最大边,属于简单题!!!!
2011-11-28 23:44
363 查看
刚开始做这道题的时候,一看就是floyd,果断打代码,wa了,然后就看看discuss,我去,全是dij,和prim,还有什么二分加并查集,这一下子给我整抑郁了
后来终于看见一个志同道合的,一句话一语道破啊!!!求长路中权值最大边的floyd核心公式map[i][j]=min(map[i][j],max(map[i][k],map[k][j])),我当时忘考虑和自己的map[][]比较了,改完果断A掉!!!!!!
对了,还有那个格式,输出两个空行,我理解是输入有一个空行,输出还有一个空行,不知恰不恰当
#include<iostream> #include<math.h> #include<stdio.h> using namespace std; struct node { int x; int y; }a[400]; double map[405][405]; int main() { int n; int t=1; while(cin>>n,n) { for(int i=0;i<n;i++) scanf("%d%d",&a[i].x,&a[i].y); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { map[i][j]=sqrt((a[i].x-a[j].x)*(a[i].x-a[j].x)*1.0+(a[i].y-a[j].y)*(a[i].y-a[j].y)*1.0); if(i==j) map[i][j]=0; } } for(int k=0;k<n;k++) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) map[i][j]=min(map[i][j],max(map[i][k],map[k][j]));//关键所在 } } printf("Scenario #%d\n",t++); printf("Frog Distance = %.3f\n\n",map[0][1]); } return 0; }
相关文章推荐
- POJ ~ 2253 ~ Frogger (Dijkstra或Floyd,最大值最小化)
- POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
- (POJ 2253)Frogger 求所有可达路径中的最大边的最小值 dijkstra || floyd 变形
- POJ - 2253 Frogger (最大权值最小化)
- POJ 2253 Frogger (单源最短路变型 求路径上最大边权值的最小值)
- POJ - 2253 Frogger (所有路径中边的权值最大的中的最小值)
- poj 2253 Frogger (floyd)
- POJ 1797 Heavy Transportation and POJ - 2253 Frogger【边权最大问题】
- Poj 2253 Frogger(最小生成树的最大边)
- POJ2253 Frogger(Floyd)
- 文章标题 POJ 2253 : Frogger(最短路--Floyd)
- Frogger POJ - 2253(Floyd最短路变形)
- POJ 2253 Frogger(最短路 Floyd)
- Poj 2253 Frogger(floyd的变形)
- POJ 2253 - Frogger (floyd)
- POJ 2253 Frogger【最短路变形——路径上最小的最大权】
- Frogger poj 2253 floyd
- poj 2253 Frogger【Dijkstru&&floyd】
- poj_2253 Frogger(floyd + %f)
- POJ 2253 Frogger(floyd)