poj 2502 subway (最短路)
来源:互联网 发布:java进销存系统源码 编辑:程序博客网 时间:2024/05/22 13:46
人走路的速度是10km/h,地铁的速度是40km/h
题目给出一个起点,一个终点,
以及几条地铁线路运行的站点。
题目给的点的做坐标单位是m
把速度统一为m/min
答案输出从起点到终点的时间,分钟数。
10km/h= 10000/60 m/min
40km/h= 40000/60 m/min
所有的点直接以步行的速度建边。
地铁线路两站相邻的以地铁速度建边
/*********************************************** * Author: fisty * Created Time: 2015/2/24 20:10:15 * File Name : L.cpp *********************************************** */#include <iostream>#include <cstring>#include <deque>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <string>#include <vector>#include <cstdio>#include <bitset>#include <algorithm>using namespace std;#define Debug(x) cout << #x << " " << x <<endl#define Memset(x, a) memset(x, a, sizeof(x))const int INF = 0x3f3f3f3f;typedef long long LL;typedef pair<int, int> P;#define FOR(i, a, b) for(int i = a;i < b; i++)#define MAX_N 2520int n;double G[MAX_N][MAX_N];struct Point{ int x; int y;}p[MAX_N];double walk(int i, int j){ double l = sqrt((double)(p[i].x - p[j].x) * (p[i].x - p[j].x) + (double)(p[i].y - p[j].y) * (p[i].y - p[j].y)); return l * 60 / 10000.0;}double subway(int i, int j){ double l = sqrt((double)(p[i].x - p[j].x) * (p[i].x - p[j].x) + (double)(p[i].y - p[j].y) * (p[i].y - p[j].y)); return l * 60.0 / 40000.0;}void solve(){ for(int k = 1; k <= n; k++){ for(int i = 1;i <= n; i++){ for(int j = 1;j <= n; j++){ G[i][j] = min(G[i][j], G[i][k] + G[k][j]); } } }} int main(){ //freopen("in.cpp", "r", stdin); scanf("%d%d%d%d", &p[1].x, &p[1].y, &p[2].x, &p[2].y); G[1][2] = G[2][1] = walk(1, 2); int j = 0;n = 3; int a, b; while(scanf("%d%d",&a,&b) != EOF){ if(a == -1 && b == -1) j = 0; else{ p[n].x = a, p[n].y = b; for(int i = 1;i < n - j; i++){ G[i][n] = G[n][i] = walk(i,n); } for(int i = n-j; i < n; i++){ G[i][n] = G[n][i] = subway(i,n); } j = 1, n++; } } n--; solve(); printf("%.0f\n", G[1][2]); return 0;}
0 0
- POJ 2502 Subway(最短路)
- poj 2502 subway (最短路)
- [POJ 2502]Subway[最短路]
- poj 2502最短路subway
- poj 2502 Subway(dijkstra 最短路)
- poj 2502 Subway (最短路 Dijksta)
- 【POJ 2502】Subway(最短路dij)
- POJ 2502 Subway 最短路 Floyd
- POJ-2502 Subway(最短路 Dijkstra)
- POJ 2502 Subway 单源点最短路模板
- POJ 2502 Subway (Dijkstra 最短路+建图)
- poj2502 Subway最短路
- POJ2502 Subway 最短路
- Subway(最短路)
- Subway(最短路)
- POJ 2502 Subway(Floyd单源最短路)
- POJ 2502 - Subway(单源最短路)
- POJ 2502 Subway ACM解题报告 (dijkstra求最短路)
- 硬盘逻辑锁
- 可重入内核
- 教你手杀顽固病毒,从此不用重装系统
- 配置KDiff3作为GIT merge图形化工具
- 手动删除木马病毒方法之检查注册表启动项
- poj 2502 subway (最短路)
- BlockingQueue的使用
- UIWebView---注意事项
- 各种版本的称呼--例如Lite指精减版
- Java学习笔记19
- 【javascript】polyfill和shim
- ASP.NET MVC5 PagedList分页示例
- C++与C#中this关键字的区别
- LeetCode 41.First Missing Positive