nyoj115——裸dijksta(点之间最短路)
城市平乱
- 描述
-
南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。
他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。
现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。
现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员,请你编写一个程序来告诉南将军第一个分队到达叛乱城市所需的时间。

注意,两个城市之间可能不只一条路。
- 输入
- 第一行输入一个整数T,表示测试数据的组数。(T<20)
每组测试数据的第一行是四个整数N,M,P,Q(1<=N<=100,N<=M<=1000,M-1<=P<=100000)其中N表示部队数,M表示城市数,P表示城市之间的路的条数,Q表示发生暴乱的城市编号。
随后的一行是N个整数,表示部队所在城市的编号。
再之后的P行,每行有三个正整数,a,b,t(1<=a,b<=M,1<=t<=100),表示a,b之间的路如果行军需要用时为t数据保证暴乱的城市是可达的。
- 输出
- 对于每组测试数据,输出第一支部队到达叛乱城市时的时间。每组输出占一行
- 样例输入
-
1
3 8 9 8
1 2 3
1 2 1
2 3 2
1 4 2
2 5 3
3 6 2
4 7 1
5 7 3
5 8 2
6 8 2 - 样例输出
-
4
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int maxn = ;
int V,n,p,q;
int vis[maxn];
int mp[maxn][maxn];
int dis[maxn];
int a[maxn]; //队伍编号 void dig(int x)
{
vis[x] = ;
for(int i=;i <= V;i++){
dis[i] = mp[x][i];
}
while(){ //故意写的像最小生成树,便于记忆
int minn = INF;
int v = -;
for(int i=;i <= V;i++){ //找到dis中最短路
if(vis[i] == &&dis[i] < minn){
minn = dis[i];
v = i;
}
}
if(v == -) break;
vis[v] = ;
for(int i=;i <= V;i++){ //更新dis值
if(mp[v][i] < INF)
dis[i] = min(dis[i],mp[v][i]+dis[v]);
}
}
} int main()
{
int t;
scanf("%d",&t);
while(t--){ scanf("%d%d%d%d",&n,&V,&p,&q);
for(int i=;i < n;i++){
scanf("%d",&a[i]);
}
memset(vis,, sizeof(vis));
for(int i=;i <= V;i++){ //二维数组不能用memset
for(int j=;j <= V;j++) {
mp[i][j] = INF;
mp[i][i] = ;
}
}
for(int i=;i <= p;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(mp[a][b] > c) //两点之间可能有多条路径
mp[a][b] = mp[b][a] = c;
}
dig(q);
int mii = INF;
for(int i=;i < n;i++){
mii = min(mii,dis[a[i]]);
}
printf("%d\n",mii);
} return ;
}——
nyoj115——裸dijksta(点之间最短路)的更多相关文章
- 四点之间最短路(spfa+优先队列+枚举优化)UESTC1955喜马拉雅山上的猴子
喜马拉雅山上的猴子 Time Limit: 1000 MS Memory Limit: 256 MB Submit Status 余周周告诉我喜马拉雅山上有猴子,他们知道点石成金的方法.我不信 ...
- 牛客编程巅峰赛S1第6场 - 黄金&钻石&王者 C.星球游戏 (单源最短路,Dijkstra)
题意:有\(n\)个点,\(m\)条双向边,两个方向的权值都是相等的,可以从\(A\)中的某个点出发走到\(B\)中的某个点,求所有路径中的最短距离,如果A和B中没有点联通,则输出\(-1\). 题解 ...
- Bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 最短路,floyd
1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 5 ...
- BZOJ2662:[BJWC2012]冻结(分层图最短路)
Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享 ...
- POJ 3463 Sightseeing (次短路)
题意:求两点之间最短路的数目加上比最短路长度大1的路径数目 分析:可以转化为求最短路和次短路的问题,如果次短路比最短路大1,那么结果就是最短路数目加上次短路数目,否则就不加. 求解次短路的过程也是基于 ...
- 【最短路】【Heap-Dijkstra】【分层图】bzoj2662 [BeiJing wc2012]冻结
裸的分层图最短路. #include<cstdio> #include<cstring> #include<queue> #include<algorithm ...
- 【bzoj5056】OI游戏 最短路+矩阵树定理
题目描述 给出一张无向图,求满足 0号点到所有点的路径长等于原图中它们之间最短路 的生成树的个数. 输入 第一行一个整数N,代表原图结点. 接下来N行,每行N个字符,描绘了一个邻接矩阵.邻接矩阵中, ...
- UOJ #277 BZOJ 4739 定向越野 (计算几何、最短路)
手动博客搬家: 本文发表于20181208 14:39:01, 原地址https://blog.csdn.net/suncongbo/article/details/84891710 哇它居然显示出图 ...
- P4568 [JLOI2011]飞行路线 分层图最短路
思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: #include<cstdio> #include<iostream> #include<cstring> ...
随机推荐
- 奇异值与主成分分析(PCA)
主成分分析在上一节里面也讲了一些,这里主要谈谈如何用SVD去解PCA的问题.PCA的问题其实是一个基的变换,使得变换后的数据有着最大的方差.方差的大小描述的是一个变量的信息量,我们在讲一个东西的稳定性 ...
- Font: a C++ class
Font: a C++ class This class is used in Fractal Generator. Avi Examples The header fileFon ...
- execute sp_executesql 用变量获取返回值
execute sp_executesql 用变量获取返回值 1,EXEC的使用 2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_exe ...
- 47. Permutations II (全排列有重复的元素)
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- LeetCode 902. Numbers At Most N Given Digit Set
应该是常数 N的位数时间级别 我的这个方法超时很严重...但是特此记录 费劲巴拉写的... 超时: int atMostNGivenDigitSet(char** D, int DSize, int ...
- HBase1.2.6 预分区后,数据不进入预定分区的一个 bug
rowkey 如下: 19000015115042900001511504390000151150449000015115045900001511504690000151150479000015115 ...
- APP图标设计小技巧:在iOS上快速获得APP图标的真实预览图
严格来说,这并不是一篇关于前端开发的文章,因为涉及到的知识非常浅.这只是一个向设计狮们分享的小经验,只是其中用到了一些前端内容. 最近接了个私活,了解到一个初创公司正在高价悬赏Logo(主要用于APP ...
- Ubuntu安装samba实现文件夹共享
因工作需要,准备在Ubuntu服务器上共享文件夹,从Windows和Mac上都可以访问共享文件. 搜了一下,决定通过samba服务实现.安装过程如下: [step1]安装samba服务 sudo ap ...
- 为什么gitHub提交记录显示作者名称是unknow?
unknow,为什么? gitHub上提交记录显示作者名称是unknow,刚开始没怎么管,后面遇到问题看提交记录时发现有两个unknow(一定有一个人遇到和我一样的问题了,哈哈..),于是解决一下吧. ...
- centos安装xdebug 和 phpstorm+Xdebug断点调试PHP
转载地址:http://www.2cto.com/os/201304/206058.html CentOS下安装xdebug 在CentOS 6.x 的系统中,是集成xdebug 的, y ...