【最短路中求至少需要的最短跳跃距离】poj 2253 Frogger
来源:互联网 发布:淘宝客服主管工资 编辑:程序博客网 时间:2024/05/19 02:25
Problem Description
输入n,接下来有n个点的坐标。要你求出从第一个坐标点,到第二个坐标点,至少需要的最短跳跃距离(意思就是只要你满足这个值,你肯定能从第一个坐标点到达第二个坐标点)
思路:改变下状态变成求,第一个坐标点到所有坐标点的至少需要的最短跳跃距离(坑点,double类型精度太高没法对,得float类型才可以,我内心是绝望的一直以为是自己算法错误)
#include<cstdio>#include<cmath>#include<algorithm>#define INF 0x3f3f3f3f * 1.0using namespace std;struct node{ float x, y;};node a[202];float Map[202][202];float dist[202];int vis[202], n;void dijkstra(int u){ int i, j; for(i = 0; i < n; i++)//初始化 { vis[i] = 0; dist[i] = Map[u][i]; } vis[0] = 1;//用过的点标记1 for(i = 0; i < n - 1; i++) { float Min = INF; float dis; for(j = 0; j < n; j++) { if(!vis[j] && Min > dist[j]) { u = j; Min = dist[j]; } } if(Min == INF) break; vis[u] = 1; for(j = 0; j < n; j++) { //到起始点至少需要的最短跳跃距离,和起始点到下一个点的距离,求最大(因为你的满足最大你才能过去)如果比下一个点至少需要的最短跳跃距离要小,就更新。 if(!vis[j] && dist[j] > (dis = max(dist[u], Map[u][j]))) { dist[j] = dis; } } }}float f(node u, node v)//两点间距离公式{ return sqrt((u.x - v.x) * (u.x - v.x) + (u.y - v.y) * (u.y - v.y));}int main(){ int i, j, cas = 0; while(~scanf("%d", &n) && n) { for(i = 0; i < n; i++) { scanf("%f %f", &a[i].x, &a[i].y); } for(i = 0; i < n; i++)//求各个点之间的距离 { for(j = 0; j < n; j++) { Map[j][i] = Map[i][j] = f(a[i], a[j]); } } dijkstra(0); printf("Scenario #%d\n", ++cas); printf("Frog Distance = %.3f\n\n", dist[1]); } return 0;}
阅读全文
0 0
- 【最短路中求至少需要的最短跳跃距离】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 (最短路
- poj 2253 Frogger (最短路Floyd)
- 最短路变形 POJ 2253 Frogger
- POJ 2253 Frogger(最短路 Floyd)
- POJ 2253 Frogger -- 最短路变形
- POJ 2253 - Frogger(最短路`dijkstra)
- POJ 2253 Frogger最短路(floyd)
- POJ 2253 Frogger(最短路--floyd变形)
- POJ 2253 Frogger(最短路变形)
- 注解和注释以及Spring和SpringMVC常用的注解
- d3对于数组的处理
- android 获取http请求json数据 package com.my.gethttpjsondata; import java.io.BufferedReader; import java.
- leetcode Letter Combinations of a Phone Number(Java)
- Android:XML解析
- 【最短路中求至少需要的最短跳跃距离】poj 2253 Frogger
- 经验模态分解法简析(转)
- [转载]使用 CSS 处理文本过长和意外超出的方法和技巧
- 增强for
- 点击两次返回键退出应用
- iOS 底层解析weak的实现原理(包含weak对象的初始化,引用,释放的分析)
- 网络中出现TCP、UDP粘包、分包的两点解决办法
- Centos6搭建zabbix2.4
- IP、TCP和DNS与HTTP的密切关系