hdu-2680 Choose the best route---dijkstra+反向存图或者建立超级源点
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2680
题目大意:
给你一个有向图,一个起点集合,一个终点,求最短路
解题思路:
1.自己多加一个超级源点,把起点集合连接到超级源点上,然后将起点与超级源点的集合的路径长度设为0,这样就称为一个n+1个点的单源最短路算法。。。。。
2.反向图+终点的Dijkstra,然后记录最小值。
注意:重边处理
思路1:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = + ;
const int INF = 0x3f3f3f3f;
int Map[maxn][maxn];
int n, m, s;
int d[maxn], v[maxn];
void dijkstra()
{
memset(v, , sizeof(v));
for(int i = ; i <= n; i++)d[i] = INF;
d[] = ;//源点是0
for(int i = ; i <= n; i++)//n+1个点,循环n+1次
{
int x = , m = INF;
for(int j = ; j <= n; j++)if(!v[j] && d[j] < m)m = d[x = j];
v[x] = ;
for(int j = ; j <= n; j++)
{
d[j] = min(d[j], d[x] + Map[x][j]);
}
}
if(d[s] == INF)cout<<"-1"<<endl;
else cout<<d[s]<<endl;
}
int main()
{
while(cin >> n >> m >> s)
{
int u, v, w;
memset(Map, INF, sizeof(Map));
while(m--)
{
scanf("%d%d%d", &u, &v, &w);
Map[u][v] = min(Map[u][v], w);//注意重边
}
scanf("%d", &w);
while(w--)
{
scanf("%d", &u);
Map[][u] = ;//建立超级源点0
}
dijkstra();
}
return ;
}
思路2:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = + ;
const int INF = 0x3f3f3f3f;
int Map[maxn][maxn];
int n, m, s;
int d[maxn], v[maxn];
void dijkstra()
{
memset(v, , sizeof(v));
for(int i = ; i <= n; i++)d[i] = INF;
d[s] = ;
for(int i = ; i < n; i++)
{
int x = , m = INF;
for(int j = ; j <= n; j++)if(!v[j] && d[j] < m)m = d[x = j];
v[x] = ;
for(int j = ; j <= n; j++)
{
d[j] = min(d[j], d[x] + Map[x][j]);
}
}
}
int main()
{
while(cin >> n >> m >> s)
{
int u, v, w;
memset(Map, INF, sizeof(Map));
while(m--)
{
scanf("%d%d%d", &u, &v, &w);
Map[v][u] = min(Map[v][u], w);//反向建图
}
dijkstra();
scanf("%d", &w);
int ans = INF;
while(w--)
{
scanf("%d", &u);
ans = min(ans, d[u]);
}
if(ans == INF)ans = -;
printf("%d\n", ans);
}
return ;
}
hdu-2680 Choose the best route---dijkstra+反向存图或者建立超级源点的更多相关文章
- 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 ( ...
- 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可以在他附近的几个公交站乘车,求最短的路径长度是多少. 解题报告:这道题的特 ...
- POJ-1122 FDNY to the Rescue!---Dijkstra+反向建图
题目链接: https://vjudge.net/problem/POJ-1122 题目大意: 给出矩阵,矩阵中每个元素tij表示从第i个交叉路口到第j个交叉路口所需时间,若tij为-1则表示两交叉路 ...
- HDU 3639 Hawk-and-Chicken(强连通缩点+反向建图)
http://acm.hdu.edu.cn/showproblem.php?pid=3639 题意: 有一群孩子正在玩老鹰抓小鸡,由于想当老鹰的人不少,孩子们通过投票的方式产生,但是投票有这么一条规则 ...
随机推荐
- 洛谷P3527 [POI2011]MET-Meteors(整体二分)
传送门 整体二分 先二分一个答案,判断是否可行,把可行的全都扔到左边,不可行的扔到右边 判断是否可行用树状数组就行 具体细节看代码好了 整体二分细节真多……也可能是我大脑已经退化了? //minamo ...
- java整理(二)
1.this关键字.this表示属性,表示方法和当前对象. this.属性调用属性. 方法分为两类,构造方法和普通方法,他们的调用形式是不同的.调用本类的方法this.方法()(这是调用普通方法)如果 ...
- nodejs + webpack4 + babel6 结合写Chrome浏览器插件记录
最近任务不忙,有时间了看一下Chrome插件相关的东西,于是想用nodejs + webpack写一个能直出插件的小工具. 1.nodejs + babel6 + webpack4 在写之前,是有把它 ...
- nginx丢弃http包体处理
http框架丢弃http请求包体和上一篇文章http框架接收包体, 都是由http框架提供的两个方法,供http各个模块调用,从而决定对包体做什么处理.是选择丢弃还是接收,都是由模块决定的.例如静态资 ...
- final、权限、内部类
final.权限.内部类 final.权限.内部类 final.权限.内部类 final.权限.内部类 final.权限.内部类 final.权限.内部类
- 黑匣子_NOI导刊2010提高(06) Splay Tree
题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两种: ...
- centos6.6上安装beef
https://rvm.io/https://rvm.io/rvm/securityhttps://www.runoob.com/ruby/ruby-installation-unix.htmlhtt ...
- POJ1030 Rating
题目来源:http://poj.org/problem?id=1030 题目大意:有100支队伍(编号1->100),有两场比赛.以下表的形式列出了两场比赛的名次.(有的队伍没有参赛或只参加了一 ...
- 转 xshell 图像化展示
http://www.cnblogs.com/kellyseeme/p/7965830.html 限制: 无法显示通过堡垒机登录的机器的图形接界面. 只能显示直接登录的服务到期的图像化界面 Xshel ...
- 基于nginx的FastCGI的缓存配置
废话不多说了, 直接上配置, 其实 fastcgi_cache 和 proxy_cache 的配置基本一样: # !缓存文件存放目录 # levels 缓存层次 # keys_zone 缓存空间名和共 ...