hdu 2680 Choose the best route (dijkstra算法 最短路问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680
Choose the best route
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7201 Accepted Submission(s):
2350
she is liable to carsickness , she wants to arrive at her friend’s home as soon
as possible . Now give you a map of the city’s traffic route, and the stations
which are near Kiki’s home so that she can take. You may suppose Kiki can change
the bus at any station. Please find out the least time Kiki needs to spend. To
make it easy, if the city have n bus stations ,the stations will been expressed
as an integer 1,2,3…n.
Each case begins with
three integers n, m and s,(n<1000,m<20000,1=<s<=n) n stands for the
number of bus stations in this city and m stands for the number of directed ways
between bus stations .(Maybe there are several ways between two bus stations .)
s stands for the bus station that near Kiki’s friend’s home.
Then follow m
lines ,each line contains three integers p , q , t (0<t<=1000). means from
station p to station q there is a way and it will costs t minutes .
Then a
line with an integer w(0<w<n), means the number of stations Kiki can take
at the beginning. Then follows w integers stands for these stations.
least time Kiki needs to spend ,if it’s impossible to find such a route ,just
output “-1”.
1 2 2
1 5 3
1 3 4
2 4 7
2 5 6
2 3 5
3 5 1
4 5 1
2
2 3
4 3 4
1 2 3
1 3 4
2 3 2
1
1
-1
(*^__^*) 嘻嘻……#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int node[],map[][],n,Min;
const int INF=; void dijkstra()
{
int vis[]= {};
int tm=,m;
node[tm]=;
vis[tm]=;
for(int i = ; i <= n; i++)
node[i] = INF;
for (int k=; k<=n; k++)
{
Min=INF;
for (int i=; i<=n; i++)
if (!vis[i])
{
if (node[i]>map[tm][i]+node[tm])
node[i]=map[tm][i]+node[tm];
if (Min>node[i])
{
Min=node[i];
m=i;
}
}
vis[m]=;
tm=m;
}
} int main ()
{
int m,s;
while (~scanf("%d%d%d",&n,&m,&s))
{
memset(map, INF, sizeof(map));
for (int i=; i<=m; i++)
{
int p,q,t;
cin>>p>>q>>t;
if (map[p][q]>t)
map[p][q]=t;
}
int w,cost;
cin>>w;
for (int i=; i<=w; i++)
{
scanf ("%d",&cost);
map[][cost]=;
}
dijkstra();
if(node[s] ==INF)
printf("-1\n");
else
printf("%d\n", node[s]);
}
return ;
}
hdu 2680 Choose the best route (dijkstra算法 最短路问题)的更多相关文章
- hdu 2680 Choose the best route
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2680 Choose the best route Description One day , Kiki ...
- hdu 2680 Choose the best route (dijkstra算法)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2680 /************************************************* ...
- hdu 2680 Choose the best route 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680 题目意思:实质就是给定一个多源点到单一终点的最短路. 卑鄙题---有向图.初始化map时 千万不 ...
- HDU 2680 Choose the best route(SPFA)
Problem DescriptionOne day , Kiki wants to visit one of her friends. As she is liable to carsickness ...
- HDU 2680 Choose the best route(多起点单终点最短路问题)题解
题意:小A要乘车到s车站,他有w个起始车站可选,问最短时间. 思路:用Floyd超时,Dijkstra遍历,但是也超时.仔细看看你会发现这道题目好像是多源点单终点问题,终点已经确定,那么我们可以直接转 ...
- HDU 2680 Choose the best route 最短路问题
题目描述:Kiki想去他的一个朋友家,他的朋友家包括所有的公交站点一共有n 个,一共有m条线路,线路都是单向的,然后Kiki可以在他附近的几个公交站乘车,求最短的路径长度是多少. 解题报告:这道题的特 ...
- HDU 2680 最短路 迪杰斯特拉算法 添加超级源点
Choose the best route Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- 【hdu 2544最短路】【Dijkstra算法模板题】
Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...
- HDU 2068 Choose the best route
http://acm.hdu.edu.cn/showproblem.php?pid=2680 Problem Description One day , Kiki wants to visit one ...
随机推荐
- 这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已
Javascript是一门很吊的语言,我可能学了假的JavaScript,哈哈,大家还有什么推荐的,补充送那啥邀请码. 本文秉承着:你看不懂是你SB,我写的代码就要牛逼. 1.单行写一个评级组件 &q ...
- python2 对URL编码进行编译
在请求页面时有时会返回类似: %E8%AF%A5985%E5%A4%A7%E5%AD%A6%E5%B8%B8%E5%B9%B4%E4%BD%8D%E5%B1%85%E5%9B%BD%E5%86%85% ...
- java直接访问JNDI工具代码
import java.sql.*; import java.util.*; import javax.naming.*; import javax.sql.DataSource; public cl ...
- set(gcf,'DoubleBuffer','on')以及sort
设置的目的是为了防止在不断循环画动画的时候会产生闪烁的现象,而这样便不会了.在动画的制作比较常用. Matlab排序函数-sort sort函数的调用格式: sort(X) 功能:返回对向量X中的元素 ...
- BZOJ 2306 幸福路径(DP)
题解来源:http://www.cnblogs.com/jianglangcaijin/p/3799494.html 最后必然是走了一条链,或者是一个环(一直绕),或者是一条链加一个环.设f[i][j ...
- 【bzoj4580】[Usaco2016 Open]248 区间dp
题目描述 Bessie likes downloading games to play on her cell phone, even though she does find the small t ...
- CentOS 文本搜索grep
grep 用于在文本中执行关键词搜索, 用法: grep [选项]... PATTERN [FILE]... [root@bigdata-senior01 ~]# grep "ftp&quo ...
- BZOJ1031:[JSOI2007]字符加密——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1031 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密 ...
- 20135331 文艺 java实验
实验楼第一次实验报告 北京电子科技学院(BESTI) 实 验 报 告 课程:Java实验 班级:1353 姓名:文艺 学号:20135331 成绩: ...
- Git 常用操作(一)
使用git pull文件时和本地文件冲突: $ git stash $ git pull $ git stash pop stash@{0} [还原暂存的内容] 上传项目流程: pwd git p ...