poj2253-Frogger (最小生成树)
来源:互联网 发布:zara淘宝官方旗舰店 编辑:程序博客网 时间:2024/06/08 19:04
题目链接: http://poj.org/problem?id=2253
题意:找到a到b的一条路径使得该路径的最大步长最小。prim算法,只是当树可以到达b点时结束。(之前做过的题目好久没练好生疏)
#include<cstdio>#include<cmath>using namespace std;const int num=205;const int inf=0x7fffffff;int n;double map[num][num],dis[num],ans,vis[num];struct node{ int x,y;}data[num];double qdis(node a,node b){ double dx,dy; dx=a.x-b.x; dy=a.y-b.y; return sqrt(dx*dx+dy*dy);}void prim(int st,int ed){ int i,j,temp,tm; double tv; ans=0; for(i=0;i<n;i++) { vis[i]=0; dis[i]=map[st][i]; } vis[st]=1; for(i=1;i<n;i++) { tv=inf; for(j=0;j<n;j++) { if(vis[j]==0&&dis[j]<tv) { tv=dis[j]; tm=j; } } vis[tm]=1; if(tv>ans) ans=tv; if(tm==ed) break; for(j=0;j<n;j++) if(vis[j]==0&&map[tm][j]<dis[j]) dis[j]=map[tm][j]; }}int main(){ int t=0,i,j; double s; freopen("in.txt","r",stdin); while(scanf("%d",&n)!=EOF) { if(n==0) break; t++; for(i=0;i<n;i++) { scanf("%d%d",&data[i].x,&data[i].y); for(j=0;j<i;j++) { s=qdis(data[i],data[j]); map[i][j]=map[j][i]=s; } map[i][i]=0; } prim(0,1); printf("Scenario #%d\n",t); printf("Frog Distance = %.3f\n\n",ans); } return 0;}
0 0
- poj2253-Frogger (最小生成树)
- POJ2253--Frogger--最小生成树Kruskal
- POJ2253 Frogger (最小生成树之prim)
- poj2253——Frogger(最小生成树,prim算法)
- poj2253 Frogger(最小生成树求最大边/最短单源路径变形)
- poj2253 Frogger 克鲁斯卡尔变种算最小生成树最大边
- poj 2253 Frogger(最小生成树)
- uva 534 - Frogger(最小生成树)
- POJ 2253 Frogger(最小生成树)
- POJ 2253 Frogger(最小生成树)
- POJ 2253 Frogger(最小生成树)
- poj2253 最小生成树最大权
- POJ2253:Frogger
- poj2253 - Frogger
- POJ2253 Frogger
- POJ2253 Frogger
- poj2253 Frogger
- poj2253 Frogger
- 拦截器 过滤器
- 2075 A|B?(A整除B)
- POJ 2488 A Knight's Journey(简单搜索)
- spring mvc 控制器方法传数组对象的一些经验
- sql操作一些命令总结
- poj2253-Frogger (最小生成树)
- 苏菲的杠杆收购
- 一个简单的java回调函数的实现
- Hilbert space
- [Sterling WMS] Sterling Commerce 产品历史版本
- 真心想学好JS、JSP、EXTJS
- C++ 内存泄露
- Yii 自带的phpexcel导出表格的实现方法
- linux下的记事本及新建账户等