hdu1874 畅通project续(求最短路径)
畅通project续
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 35206 Accepted Submission(s): 12877
这让行人非常困扰。
如今。已知起点和终点,请你计算出要从起点到终点,最短须要行走多少距离。
每组数据第一行包括两个正整数N和M(0<N<200,0<M<1000)。分别代表现有城镇的数目和已修建的道路的数目。
城镇分别以0~N-1编号。
接下来是M行道路信息。每一行有三个整数A,B,X(0<=A,B<N,A!=B,0<X<10000),表示城镇A和城镇B之间有一条长度为X的双向道路。
再接下一行有两个整数S,T(0<=S,T<N),分别代表起点和终点。
假设不存在从S到T的路线,就输出-1.
3 3
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
2
-1
pid=2112" target="_blank" style="color:rgb(26,92,200); text-decoration:none">2112
pid=1217" target="_blank" style="color:rgb(26,92,200); text-decoration:none">1217
1142 1690 1548Statistic | Submit | Discuss | Note
dijkstr算法。做过好多这种题了,也解释了那么多。。。这个就不具体说了吧..........
#include <stdio.h>
#include <string.h>
#include <queue>
using namespace std;
struct node//实现优先队列的结构体
{
int pos,cost;
friend bool operator<(node x,node y)
{
return x.cost>y.cost;
}
};
priority_queue<node>s;
int map[205][205],vis[205],n,m;
int dijkstra(int st,int ed)
{
node temp,temp1;
temp.pos=st,temp.cost=0;
s.push(temp);
while(!s.empty())
{
temp1=temp=s.top();
s.pop();
if(temp.pos==ed)
break;
vis[temp.pos]=1;
for(int i=0;i<n;i++)
{
if(!vis[i]&&map[temp.pos][i]<100000)
{
temp.cost=temp.cost+map[temp.pos][i];
temp.pos=i;
s.push(temp);
}
temp=temp1;
}
}
if(temp.pos==ed)
return temp.cost;
else
return -1;
}
int main()
{
while(scanf("%d %d",&n,&m)!=EOF)
{
memset(map,100,sizeof(map));
memset(vis,0,sizeof(vis));
while(!s.empty())
s.pop();
for(int i=0;i<m;i++)
{
int a,b,x;
scanf("%d %d %d",&a,&b,&x);
if(map[a][b]>x)
map[a][b]=map[b][a]=x;
}
int st,ed;
scanf("%d %d",&st,&ed);
printf("%d\n",dijkstra(st,ed));
}
return 0;
}
hdu1874 畅通project续(求最短路径)的更多相关文章
- HDU1874畅通project续 dijkstra&&floyd
畅通project续 http://acm.hdu.edu.cn/showproblem.php?pid=1874 Time Limit: 3000/1000 MS (Java/Others) ...
- HDU-1874 畅通工程续 (最短路径启蒙题)
hdu 1874比较基础,拿来练各种刚学会的算法比较好,可以避免好多陷阱,典型的最短路模板题 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memor ...
- hdu1874 畅通project续 最短路 floyd或dijkstra或spfa
Problem Description 某省自从实行了非常多年的畅通project计划后.最终修建了非常多路.只是路多了也不好,每次要从一个城镇到还有一个城镇时,都有很多种道路方案能够选择.而某些方案 ...
- HDU 1874 畅通project续 (最短路径)
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdoj 1874 畅通project续【SPFA】
畅通project续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Su ...
- HDOJ 1874 畅通project续
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 1874 畅通project续 最短路径入门(dijkstra)
Problem Description 某省自从实行了非常多年的畅通project计划后,最终修建了非常多路.只是路多了也不好,每次要从一个城镇到还有一个城镇时,都有很多种道路方案能够选择,而某些方案 ...
- Hdu1874 畅通工程续 2017-04-12 18:37 48人阅读 评论(0) 收藏
畅通工程续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submiss ...
- hdu1874畅通工程续(floyd)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
随机推荐
- [COGS2479]偏序
[COGS2479]偏序 题目大意: \(n(n\le50000)\)个四元组,求四维偏序. 思路: CDQ分治套CDQ分治套树状数组. 细节: 第二层CDQ之前要备份数组\(a\),否则第二层CDQ ...
- Educational Codeforces Round 13 E. Another Sith Tournament 状压dp
E. Another Sith Tournament 题目连接: http://www.codeforces.com/contest/678/problem/E Description The rul ...
- ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
B. Om Nom and Dark Park Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- redis缓存穿透解决办法--排它锁
- 匹配<a href="url">content</a>
grep -Po '<a href="(.*.rmvb")>(.*)</a>' te.txt | sed -n 's/<a href=\(.*\)&g ...
- 移动平台的WebApp之Meta标签
对于桌面平台web布局中大家对meta标签再熟悉不过了,它永远位于 head 元素内部,对做SEO的朋友一定对meta有种特殊的感情吧,今天我们就来说说移动平台的meta标签,在移动平台meta标签究 ...
- How to Find Processlist Thread id in gdb !!!!!GDB 使用
https://mysqlentomologist.blogspot.jp/2017/07/ Saturday, July 29, 2017 How to Find Process ...
- java基础学习总结——面向对象2
一.JAVA类的定义
- 给.DLL文件加一个数字签名的方法
给.dll文件加一个数字签名的方法 效果如图所示: 做法: 下载数字签名工具包:http://files.cnblogs.com/babyt/SignTool.rar /Files/JavaC ...
- 在Windows Server 2008 R2中使用web方式修改域用户账户密码
在Windows的domain环境下,加域的客户端修改账户密码是一件很easy的事情:即使没有加域的客户端如果组织中,使用Exchange邮件系统,借助Exchange的owa也可以轻松修改账户密码. ...