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 ...
随机推荐
- Restful 级别划分以及HATEOAS是什么?
Restful简介 Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存 ...
- 洛谷 P4379 [USACO18OPEN]Lemonade Line
P4379 [USACO18OPEN]Lemonade Line 题目描述 这是农场上一个炎热的夏日,Farmer John要给他的 NN 头奶牛发柠檬汽水了!所有的 NN 头奶牛(方便起见,编号为 ...
- dtrace-conf 2016
https://www.joyent.com/about/events/2016/dtrace-conf
- Android GIS开发系列-- 入门季(14)FeatureLayer之范围查询
Android GIS开发系列-- 入门季(5),这篇文章中,我们知道如何去查找要素.现在有一个需求,查找某点5000米范围的要素,那如何来做呢?首先我们需要在地图上画个5000米半径的圆,然后根据Q ...
- SAS编程基础 - 菜鸟入门常用操作
1. SAS9.4添加和取消注释的快捷键? Ctrl+/:添加注释 Ctrl+Shift+/:取消注释 2. 如何强制终止程序运行? 看到那个圆圈里带叹号的图标了吗?没错,就是它 - 中断! 3. 如 ...
- centos7grub2 引导win10
centos7+win10安装完成之后,使用gurb2引导win10系统 方式:使用ntfs-3g 步骤: 1.加源 wget -O /etc/yum.repos.d/epel.repo http: ...
- 001 Cisco router prewired
Cisco router 预配: Router>en Router#config t Enter configuration commands, one per line. End with ...
- Androidbuttonshape形状资源码实现
1.项目Src下创建drawable 看文档Develop/API Guides/App Resources/Drawable/Shape Drawable 单词:corners : 角 ; gr ...
- 【C语言】推断一个数是否为2的n次方
//推断一个数是否为2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))) //去掉一个1,推断 ...
- Session与Cookie解析
Session和Cookie这两个对象也接触了比較长的时间了,今天就来总结一下. 首先,他们都是会话跟踪中经常使用的技术.Cookie在client记录信息来确定用户身份,Session在服务端记录信 ...