poj2502 Subway
思路:
需要注意的地方:一条地铁线路并不一定和样例描述的那样是直的;同一条线路上的两个站点步行可能更快。
实现:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std; const int MAXN = , INF = 0x3f3f3f3f;
int sx, sy, ex, ey;
double dis[MAXN][MAXN]; struct node
{
int x, y;
};
node a[MAXN]; int square(int x)
{
return x * x;
} double cal(int i, int j)
{
return sqrt((double)square(a[i].x - a[j].x) + (double)square(a[i].y - a[j].y));
} int main()
{
int x, y;
cin >> sx >> sy >> ex >> ey;
a[].x = sx; a[].y = sy;
int tmp = , cnt = ;
for (int i = ; i < MAXN; i++)
{
for (int j = ; j < MAXN; j++)
{
dis[i][j] = INF;
}
}
for (int i = ; i < MAXN; i++) dis[i][i] = ;
while (cin >> x >> y)
{
if (x == - && y == -)
{
for (int i = tmp; i < cnt - ; i++)
dis[i][i + ] = dis[i + ][i] = cal(i, i + ) / 40.0;
tmp = cnt;
continue;
}
a[cnt++].x = x; a[cnt - ].y = y;
}
a[cnt].x = ex; a[cnt].y = ey;
for (int i = ; i <= cnt; i++)
{
for (int j = i + ; j <= cnt; j++)
{
dis[i][j] = dis[j][i] = min(dis[i][j], cal(i, j) / 10.0);
}
}
for (int k = ; k <= cnt; k++)
{
for (int i = ; i <= cnt; i++)
{
for (int j = ; j <= cnt; j++)
if (dis[i][k] + dis[k][j] < dis[i][j])
dis[i][j] = dis[i][k] + dis[k][j];
}
} cout << int(dis[][cnt] / 1000.0 * 60.0 + 0.5) << endl;
return ;
}
poj2502 Subway的更多相关文章
- POJ2502:Subway(最短路)
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14634 Accepted: 4718 题目链接:http ...
- POJ-2502 Subway( 最短路 )
题目链接:http://poj.org/problem?id=2502 Description You have just moved from a quiet Waterloo neighbourh ...
- poj图论解题报告索引
最短路径: poj1125 - Stockbroker Grapevine(多源最短路径,floyd) poj1502 - MPI Maelstrom(单源最短路径,dijkstra,bellman- ...
- POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离)
POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离) Description You have just moved from a ...
- POJ-2502(Dijikstra应用+最短路)
Subway POJ-2502 这里除了直接相连的地铁站,其他图上所有的点都要连线,这里是走路的速度. 记住最后的结果需要四舍五入,否则出错. #include<iostream> #in ...
- 第一次作业——subway
作业源程序代码:https://github.com/R-81/subway 作业程序使用说明:通过输入命令参数求解路线(仅支持-b,-c),根据参数得出路线后,程序不会结束,此时可输入地铁路线名(例 ...
- 2016 Multi-University Training Contest 1 J.Subway
Subway Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Su ...
- Subway Icon Set – 306个像素完美的特制图标
这个图标集是306个优化的像素完美,精雕细琢的图标.为这些设备进行了优化:iOS.Windows Phone.Windows 8 and BlackBerry 10,提供 PNG, SVG, XALM ...
- ural 1272. Non-Yekaterinburg Subway
1272. Non-Yekaterinburg Subway Time limit: 1.0 secondMemory limit: 64 MB A little town started to co ...
随机推荐
- Ubuntu系统备份工具大全(官方整理推荐)
其实官方在系统备份这块已经有Wiki整理和收集各类实用的工具.以下是翻译自官方Wiki的部分文档: 备份工具 wiki文档实用程序 工具 界面 格式类型 Raw/File 支持 远程 增量 差异 自 ...
- Ubuntu 16.04安装***-qt5
上一篇文章http://www.cnblogs.com/EasonJim/p/7133097.html中,第5步安装本地代理源服务器使用的是electron-ssr,发觉这个东西难配且难用,非常不建议 ...
- easyui webuploader 文件上传演示
webuploader 上传首页 webuploader 上传前页面 webuploader 上传中页面 图就不上传了,状态会编程上传中 webuploader 已上传页面
- android_handler(二)
这篇记录 android 消息机制中.WorkThread 模拟向网络訪问数据,获得数据后,返回 message 发送给 MainThread ,并改动 TextView 的 text 的这种一个步骤 ...
- Android Studio 1.x 使用问题汇总
Android Studio是谷歌于13年I/O大会推出的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的Androi ...
- ubuntu系统下,下载Android源码
博主电脑的Windows的 是用的vmware装的ubuntu kylin.vmware随便找都能找到尽量安装最新版本号的,而unbuntu在官方站点下载即可了,安装vmware的时候建议关闭安全类 ...
- Redis开源项目的终极杀手? ——CRUG解读Redis开源协议变更
引言: 数据库制造商 Redis Labs 本周将公司开发的Redis 模块从 AGPL 迁移到将 Apache v2.0 与 Commons Clause 相结合的许可证,对许可证涵盖的软件作了限制 ...
- [办公应用]如何将excel合并单元格分拆后每个单元格上仍保留数据?
合并单元格虽然美观,但是无法进行排序.筛选等操作. 只有合并单元格拆分后才可以按常规进行统计.但是普通拆分后,excel仅保留合并单元格数据到区域左上角的单元格. 解决方案:选定多个合并单元格,应用本 ...
- 解决myeclipse在mac中Retina屏幕中模糊的终极详细方法
- Vijos 1565 多边形 【区间DP】
描述 zgx给了你一个n边的多边形,这个多边形每个顶点赋予一个值,每条边都被标上运算符号+或*,对于这个多边形有一个游戏,游戏的步骤如下:(1)第一步,删掉一条边:(2)接下来n-1步,每步对剩下的边 ...