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 ...
随机推荐
- java知识点总结
一.java 1.容器 1)List Java中ArrayList和LinkedList区别 2)Set 理解HashSet及使用 HashMap和HashSet的区别 3Map HashMap的容量 ...
- bzoj 3275 最小割
给你一堆东西,叫你选一些东西出来,使得价值最大,要求选出的东西集合中的任意a,b满足性质p. 可以考虑: 1.拟阵? 2.二分图? 这道题由于数学硬伤,不知道不存在两条直角边是奇数,斜边是整数的直角三 ...
- nodejs环境使用jshint
一.概述jshint是检测JavaScript语法问题的工具,可以根据自己的需要配置检测规则. 二.安装npm install jshint -g一般全局安装就可以了,可以在任何目录下使用jshint ...
- win7 64位安装pywin32
先安装pywin32-218.win-amd64-py3.4.exe文件: 安装完成后,用CMD管理员模式进入\Python34\Scripts\目录 输入pywin32_postinstall.py ...
- angularJS简介及其特点—— 五大特性,加快 Web 应用开发
AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发. 一. 关于和jquery的比较 首先angular是一个mvc框架,它与jquery不同之处在于,前者致力于 ...
- Linux下Qt安装
1.下载qt-everywhere-opensource-src4.7.2.tar.gz(http://download.qt.io/archive/qt/4.7),并解压在/opt目录下,文件名为q ...
- elasticsearch实例讲解增删改查
1.首先弄明白四个概念 elasticsearch 关系型数据库 index 数据库 type 表 document 行 field 字段 如果刚一开始理解比较困难,那你就在心中默念100遍,10遍也 ...
- 垃圾收集简介 - GC参考手册
http://blog.csdn.net/column/details/14851.html
- cocos2d-x 3.0 将cpp-tests编译成Android版本号APK文件
cmd模式 进入到 E:\cocos2d-x-3.0rc1\cocos2d-x-3.0rc1\build 输入命令 android list targets 在输入: android-build.py ...
- MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹
为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...