题目链接: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的更多相关文章

  1. 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 ...

  2. POJ 2502 Subway(迪杰斯特拉)

    Subway Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6692   Accepted: 2177 Descriptio ...

  3. POJ 2502 Subway (Dijkstra 最短+建设规划)

    Subway Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6689   Accepted: 2176 Descriptio ...

  4. HDU 2502 月之数(二进制,规律)

    月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  5. POJ 2502 - Subway Dijkstra堆优化试水

    做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...

  6. POJ 2502 Subway (最短路)

    Subway 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/L Description You have just moved ...

  7. POJ 2502 Subway

    Subway Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4928   Accepted: 1602 Descriptio ...

  8. (简单) POJ 2502 Subway,Dijkstra。

    Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of ...

  9. Dijkstra+计算几何 POJ 2502 Subway

    题目传送门 题意:列车上行驶40, 其余走路速度10.问从家到学校的最短时间 分析:关键是建图:相邻站点的速度是40,否则都可以走路10的速度.读入数据也很变态. #include <cstdi ...

随机推荐

  1. Openjudge-计算概论(A)-找和为K的两个元素

    描述: 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k. 输入第一行输入序列的长度n和k,用空格分开.第二行输入序列中的n个整数,用空格分开.输出如果存在某两个元 ...

  2. mysql的存储引擎如何选择

    myisam:如果表对事务要求不高,用时以查询和添加为主,我们考虑myisam存储,如bbs中的发帖表.回复表 innodb:对事务要求高,保存的数据都是重要的数据,我们建议使用innodb,比如订单 ...

  3. ubuntu12.10下OpenFoam的编译

    最近在ubuntu12.10下编译OpenFoam,遇到一些问题,小记一下. 首先到官网下载源码包(我这里下载的是OpenFOAM-2.3.0.tgz,ThirdParty-2.3.0.tgz). 1 ...

  4. 从0开始学习blockchain

    http://www.8btc.com/build-your-own-blockchain

  5. CSS的基本概念

    <!--CSS 一.概念:CSS的全称是Cascading Style Sheets,层叠样式表,用来控制HTML标签样式,在美化网页中起到非常重要的作用 CSS的编写格式是键值对形式的,比如 ...

  6. ios NSComparator 三种枚举类型

    NSComparator有3种枚举类型 NSOrderedDescending 降序,但是用他可以实现升序或者降序都没问题. NSOrderedAscending 升序,但是目前没有使用出任何效果.. ...

  7. SuperMapPy 批量拼接 GeoTiff影像

    影像拼接工具使用说明 一.影像像素位深检查 1.采用开源库GDAL的gdalinfo.exe读取GeoTiff文件的信息,如类型.投影,范围等. 2.采用DOS脚本遍历所有GeoTiff文件,输出各个 ...

  8. mysql 中 SQL_CALC_FOUND_ROWS 功能

    mysql 数据库不符合sql标准的地方不少,比如TIMESTAMP列的处理,字符串比较默认大小写不敏感什么的.有时候这些问题会让你很郁闷,尤其是对从其它数据库转过来的人来说.但有些功能倒也蛮有趣. ...

  9. 测试TCP/IP配置

    安装网络硬件和网络协议之后,我们一般要进行TCP/IP协议的测试工作,那么怎样测试才算是比较全面的测试呢?我们认为,全面的测试应包括局域网和互联网两个方面,因此应从局域网和互联网两个方面测试,以下是我 ...

  10. mysql 数据表

    CREATE DATABASE IF NOT EXISTS  `shop`;USE `shop`; drop table if exists lidepeng; create table lidepe ...