POJ 2502 Dijsktra
POJ subway 600K 0MS
题意:乘坐地铁从家到学校,地铁40km/h 步行10km/h , 已知各个站点的x,y坐标,输入的信息每个列次用-,-1隔开,要求花费的时间最少
解决方案:把家和学校各看成一个站点,求出相邻站点的权值(路程/速度),以站点数量建立map,保留两站之间的距离,然后dijsktra算法寻找两站点间最短路径
问题:结束条件EOF,sign初始值
#include<iostream>
#include<cmath>
#define MAX 10000000.0
using namespace std;
double pt[][];// 存放站点的坐标值
double map[][];// 存放各个站点直接的权值(路程/速度)
double d[]; //记录各点到起点最短距离
double dijkstra(int x, int y,int n)// pt[x]为起点 ,pt[y]为终点 一共n个站点
{
int i,j,k,tx=x,next;//next下一个最短路径位置
double min ;
bool visited[];
memset(visited,false,sizeof(visited));
visited[x]=true;
for (i=;i<n;i++)
if(!visited[i])d[i]=map[][i];
for(i=; i<n; i++)
{
min = MAX;
for (j=; j<n; j++)//找到附近最小的路径
if(!visited[j] && d[j]<min)
min=d[j], next=j;
visited[next]= true;//访问
if(next==y) break; //找到终点的最短距离,结束
for (j=; j<n; j++)//更新各点到源点最短路信息
if(!visited[j] && d[j]>d[next]+map[next][j])
d[j]=d[next]+map[next][j];
}
return d[y];
}
int main()
{
char c;
int i,j,k,num,sign;//num记录站点个数, sign标记站点关联
cin >> pt[][] >> pt[][] >> pt[][] >> pt[][];//pt[0],pt[1] 记录起点、终点 memset(map,,sizeof(map));
num = ,sign = ;//sign=0 隔离站点关联
while( scanf("%lf%lf",&pt[num][],&pt[num][])!=EOF)
{
// c=getchar();if(c=='#') break;
if(pt[num][]==- && pt[num][]==-)
{
sign = ; continue;
}
if(sign)//求出相邻地铁站点间的权值
map[num][num-]=map[num-][num]=
(sqrt(pow(pt[num][]-pt[num-][],2.0)+pow(pt[num][]-pt[num-][],2.0)))/40000.0;
++num, sign =;
}
//求出剩余各个站点间的权值
for(i=; i<num; i++)
for (j=; j<num; j++)
if(map[i][j]==) map[i][j]=map[j][i]=(sqrt((pt[i][]-pt[j][])*(pt[i][]-pt[j][])+(pt[i][]-pt[j][])*(pt[i][]-pt[j][])))/10000.0;
printf("%0.lf\n",dijkstra(,,num)*);//四舍五入输出结果
return ;
}
这是第一次做图论题,复习了一下Dijsktra算法,关键是建立map模型。。。
POJ 2502 Dijsktra的更多相关文章
- POJ 2502 - Subway Dijkstra堆优化试水
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...
- 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 ...
- Subway POJ 2502
题目链接: http://poj.org/problem?id=2502 题目大意: 你刚从一个安静的小镇搬到一个吵闹的大城市,所以你不能再骑自行车去上学了,只能乘坐地铁或者步行去上学.因为你不想迟到 ...
- 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 ...
- POJ 2502 最短路
http://poj.org/problem?id=2502 同一条地铁线上的站点相邻点间按照v2建边,然后所有点之间按照v1更新建边,所有的边都是双向边,both directions. 然后直接跑 ...
- kuangbin_ShortPath L (POJ 2502)
dij部分还是跟模板差不多的 但是这题的难点是处理输入 或者说理解题意 事实上每个点之间都是可以走的......WA了好几发就因为没意识到同一条路线上的各个站点之间居然也可以走得比车子快.... PS ...
- POJ 2502 Subway
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4928 Accepted: 1602 Descriptio ...
- Dijkstra+计算几何 POJ 2502 Subway
题目传送门 题意:列车上行驶40, 其余走路速度10.问从家到学校的最短时间 分析:关键是建图:相邻站点的速度是40,否则都可以走路10的速度.读入数据也很变态. #include <cstdi ...
随机推荐
- Qt标准对话框之QColorDialog
Qt中提供了一些标准的对话框,用于实现一些常用的预定义功能,比如本节中将要介绍的颜色对话框——QColorDialog. 在不同的系统平台下,颜色对话框的显示效果可能会有所不同,主要因系统主题风格而异 ...
- firefox下对ajax的onreadystatechange的支持情况分析及解决
一.问题: var xmlHttp; function savecarttodata(){ createXMLHttpRequest(); var rndcode = new Date().getTi ...
- Boolean 布尔类型详解
这是最简单的类型.boolean 表达了真值,可以为 TRUE 或 FALSE.两个都不区分大小写. 要明确地将一个值转换成 boolean,用 (bool)或者 (boolean) 来强制转换.但是 ...
- 收藏一个匹配html内容的文章
http://blog.csdn.net/donglynn/article/details/35788879
- MySQL - “Timeout error occurred trying to start MySQL Daemon”解决方法
前几天,网站出现Many connections的问题,进入mysql,show full processlist发现有154个进程,晕....直接service mysqld restart 但是不 ...
- yii之srbac详解
一.安装篇 1.下载http://www.yiiframework.com/extension/srbac/ 将解压得到的srbac文件夹放在moudles目录下. 2.在项目的主配置文件中mai.p ...
- MySQL下Limit使用及性能分析
对于一直用Oracle的我,今天可是非常诧异,MySQL中同一个函数在不同数量级上的性能居然差距如此之大. 先看表ibmng(id,title,info) 唯一 id key 索引title 先看 ...
- NET SqlClient
NET SqlClient的使用与常见问题 阅读目录 一.简介 二.使用ADO.NET 三.常见问题 回到目录 一.简介 在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的 ...
- 转:浅谈命令查询职责分离(CQRS)模式
原文来自于:http://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查 ...
- mysql 时间字段的函数 timestamp
Mysql 里格式 时间字段的函数 DATE_FORMAT unix_timestamp - 墨墨修行的日志 - 网易博客http://jjuanxi.blog.163.com/blog/static ...