hdoj 2544 最短路(最短路+Dijkstrea算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544
思路分析:该问题给定一个无向图,要求求从起始点到终点的最短路径长度;可以使用dijkstra算法求出该起始点到其他所有点的最短距离;
代码如下:
#include <queue>
#include <climits>
#include <cstdio>
#include <vector>
#include <utility>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std; typedef pair<int, int> PII;
const int MAX_N = + ;
const int MAX_M = + ;
int u[MAX_N], v[MAX_N], w[MAX_N];
bool done[MAX_N];
int d[MAX_N];
vector<PII> G[MAX_N]; void Dijkstra(int n)
{
priority_queue<PII, vector<PII>, greater<PII> > q; for (int i = ; i <= n; ++i)
d[i] = (i == ? : INT_MAX);
memset(done, NULL, sizeof(done));
q.push(make_pair(d[], ));
while (!q.empty())
{
PII x = q.top();
q.pop();
int u = x.second;
if (done[u]) continue;
done[u] = true;
for (int i = ; i < G[u].size(); ++i)
{
int v = G[u][i].first;
int w = G[u][i].second;
if (d[v] > d[u] + w)
{
d[v] = d[u] + w;
q.push(make_pair(d[v], v));
}
}
}
} int main()
{
int N, M; while (scanf("%d %d", &N, &M) != EOF && N && M)
{
for (int e = ; e <= M; ++e)
{
scanf("%d %d %d", &u[e], &v[e], &w[e]);
G[u[e]].push_back(make_pair(v[e], w[e]));
G[v[e]].push_back(make_pair(u[e], w[e]));
}
Dijkstra(N);
printf("%d\n", d[N]);
for (int i = ; i <= N; ++i)
G[i].clear();
}
return ;
}
hdoj 2544 最短路(最短路+Dijkstrea算法)的更多相关文章
- 算法学习笔记(三) 最短路 Dijkstra 和 Floyd 算法
图论中一个经典问题就是求最短路.最为基础和最为经典的算法莫过于 Dijkstra 和 Floyd 算法,一个是贪心算法,一个是动态规划.这也是算法中的两大经典代表.用一个简单图在纸上一步一步演算,也是 ...
- 算法笔记--次小生成树 && 次短路 && k 短路
1.次小生成树 非严格次小生成树:边权和小于等于最小生成树的边权和 严格次小生成树: 边权和小于最小生成树的边权和 算法:先建好最小生成树,然后对于每条不在最小生成树上的边(u,v,w)如果我们 ...
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- hdoj 2544 最短路【dijkstra or spfa】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HUD 2544 最短路 迪杰斯特拉算法
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 【hdu 2544最短路】【Dijkstra算法模板题】
Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...
- hdoj 2544 最短路
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2544 分析:Dijkstra算法 //2013-10-30 10:01:25 Accepted 254 ...
- hdoj 2544最短路
Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...
- HDU 2544 最短路(初涉SPFA算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t ...
随机推荐
- iOS App集成Apple Pay教程(附示例代码)
苹果在本周一发布了iOS 8.1版本,并正式开放了Apple Pay支付系统.Apple Pay是一个基于NFC的支付系统,不久将被数以万计的线下零售商店予以支持.即便这项科技并不是彻底的突破性进展, ...
- 在Java SE中使用Hibernate处理数据
如今,Hibernate正在迅速成为非常流行的(如果不是最流行的)J2EE O/R映射程序/数据集成框架.它为开发人员提供了处理企业中的关系数据库的整洁.简明且强大的工具.但如果外部需要访问这些已被包 ...
- Java基础之垃圾回收
/** * 对象在没有任何引用可以到达时,生命周期结束,成为垃圾. * 所有对象在被回收之前都会自动调用finalize()方法. * ******************************** ...
- 树莓派读取DHT11传感器的源代码
import wiringpi2 as gpio owpin=8 #第8脚为1-wire脚 def getval(owpin): tl=[] #存放每个数据位的时间 tb=[] #存放数据位 gpio ...
- javax.ejb.SessionBean
import javax.ejb.SessionBean;import javax.ejb.SessionContext;import javax.ejb.CreateException; //有状态 ...
- openstack中iptables的使用
openstack中nova使用了iptables实现其网络相关功能,乍看openstack的iptables表比较复杂,整理了一下iptables的filter表和nat表的结构,以一个all in ...
- Codeforces 701C They Are Everywhere(Two pointers+STL)
[题目链接] http://codeforces.com/problemset/problem/701/C [题目大意] 给出 一个字符串,里面包含一定种类的字符,求出一个最短的子串,使得其包含该字符 ...
- Java图形化界面设计——布局管理器之null布局(空布局)
一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局. 操作方法: 1) 首先利用setLayout(null)语句将容器的布局设置为null布局(空布局 ...
- c++程序内存泄露检測工具
功能: 用于检測c++程序的内存泄露. 原理: 事实上非常easy,就是通过函数的重载机制,捕获应用程序的new, new[] , delete , delete[], malloc,calloc,f ...
- Zoie Merge Policy
Zoie有一个ZoieMergePolicy如若价格值不是特别的.这是为lucene早期的版本号merge在不考虑删除doc会计并加以改进,和LogMergePolicy只是做同样的也合并相邻节段,而 ...