HDU - 2502 Subway
题目链接:http://poj.org/problem?id=2502
分析:
告诉一些地铁线路,从起点到终点,中途可以步行,可以坐地铁,找一条最短的路
主要是把图建立好,然后直接dijkstra或者floyd,因为速度不同,所以转化成求最短的时间
题目大致处理方法就是将每个地铁站点与相邻的站点用时先算出,然后再算各个点之间步行耗时,最后一个dijkstra。
*:scanf的返回值由后面的参数决定scanf("%d%d",&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF.
且返回值为int型.
Sample Input
- -
- -1
Sample Output
**********************************************
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
#include<stdlib.h>
#include<map>
#include<cmath> using namespace std; #define N 2500
#define INF 0x3f3f3f3f double v1=40000.0/,v2=10000.0/;
double maps[N][N], dist[N];
int vis[N], k=;; struct node
{
int x,y;
} p[N]; node s,e; double Len(node a,node b)
{
double x=a.x-b.x;
double y=a.y-b.y;
double len=sqrt(x*x+y*y);
return len;
} void Init()
{
for(int i=; i<N; i++)
{
for(int j=; j<N; j++)
maps[i][j]=(i==j)?:INF;
dist[i]=INF;
}
} void dij()
{
int i,j; for(i=; i<k; i++)
dist[i]=maps[][i]; vis[]=; for(i=; i<k; i++)
{
double Min=INF;
int index=-;
for(j=; j<k; j++)
{
if(vis[j]==&&Min>dist[j])
{
Min=dist[j];
index=j;
}
}
if(index==-) break;
vis[index]=; for(j=;j<k;j++)
if(dist[j]>maps[index][j]+dist[index]&&vis[j]==)
dist[j]=maps[index][j]+dist[index];
}
} int main()
{
int x,y,f=, i,j; scanf("%d %d", &s.x,&s.y);
scanf("%d %d",&e.x,&e.y);
p[]=s;
p[]=e; memset(vis,,sizeof(vis));
memset(maps,,sizeof(maps));
Init(); dist[]=;
vis[]=; while(scanf("%d %d",&x,&y)==)/*/
{
if(x==-&&y==-)
{
f=;
continue ;
} p[k].x=x;
p[k].y=y; if(f==)
maps[k][k-]=maps[k-][k]=min(maps[k][k-], Len(p[k],p[k-])/v1);
f=;
k++;
}
for(i=; i<k; i++)
for(j=; j<k; j++)
maps[i][j]=maps[j][i]=min(maps[i][j], Len(p[i],p[j])/v2); dij(); printf("%.0f\n", dist[]); return ;
}
HDU - 2502 Subway的更多相关文章
- 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 Subway(迪杰斯特拉)
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6692 Accepted: 2177 Descriptio ...
- POJ 2502 Subway (Dijkstra 最短+建设规划)
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6689 Accepted: 2176 Descriptio ...
- HDU 2502 月之数(二进制,规律)
月之数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- POJ 2502 - Subway Dijkstra堆优化试水
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...
- POJ 2502 Subway (最短路)
Subway 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/L Description You have just moved ...
- POJ 2502 Subway
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4928 Accepted: 1602 Descriptio ...
- (简单) POJ 2502 Subway,Dijkstra。
Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of ...
- Dijkstra+计算几何 POJ 2502 Subway
题目传送门 题意:列车上行驶40, 其余走路速度10.问从家到学校的最短时间 分析:关键是建图:相邻站点的速度是40,否则都可以走路10的速度.读入数据也很变态. #include <cstdi ...
随机推荐
- windows socket函数详解
windows socket函数详解 近期一直用第三方库写网络编程,反倒是遗忘了网络编程最底层的知识.因而产生了整理Winsock函数库的想法.以下知识点均来源于MSDN,本人只做翻译工作.虽然很多前 ...
- HDU 4329 MAP(stringstream的用法)
这个题目有点绕,但是按着他的意思写不难模拟出来.本来是一场学弟们的训练赛,我这个学长在赛场上却WA了四次都没过,三条黑线就一直在我的脑袋上挂着... 赛后开始找原因,后来发现题目看错了,1/R中的R是 ...
- cocos2d-x 获得系统语言繁体
IosLocalUtil.h #ifndef __IOS_LOCALUTIL_H__ #define __IOS_LOCALUTIL_H__ class IosLocalUtil{ public: s ...
- oracle 备份操作流程
Oracle 库表导出步骤 例如,要导出wcsr用户下的所有表,已知用户名/密码:wcsr/wcsr_woer 首先打开cmd.exe 其次创建备份目录,最好目录不包含空格和中文名 md d:\ora ...
- 常见的jquery一些效果
1.CSS渐变:background: linear-gradient(to bottom right, #999 , #eee);
- C# var 隐式类型 var 用法 特点
var 关键字是C# 3.0 开始,在方法范围中声明的变量: var有以下特点: * 1.var在编译器编译的时候根据初始值推断出其的类型 * 2.不能赋值除了初始值类型之外的其他类 ...
- url操作一网打尽(一)
1:url实际应用简介 近期研究发现通过url传递参数很普遍的(淘宝也是这样做的), 通过修改url来传递参数,比如通过关键字搜索某件商品的时候,链接便追加了相应参数.在请求接口的时候直接对url进行 ...
- 修改index.php 清空mylog1.txt
进入编辑php文件vim index.php(无则新建) -->进入命令行模式--输入a(append)-->进入编辑模式-->编辑好-->esc退出编辑模式-->:q! ...
- lua学习
在lua中,一切都是变量,除了关键字. 1.注释: 单行注释: 连续两个减号“--”表示注释的开始,一直延续到行末.相当于C语言中的“//” 多行注释:由“--[[”表示注释开始, “]]”表示注释结 ...
- Eva's Problem
Eva's Problem Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) Total ...