HDU 2544 最短路(模板题)
求1到N的最短路径,模板题,以1为源点,用dijkstra算法(可以用优先级队列优化)
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <queue> using namespace std;
const int maxn=0x3f3f3f3f; int road[][];//road[i][j]表示i与j的距离(这里指进过该条路的时间)
int dis[];//dis[i]表示i点到源点1的最短路径大小
int vis[];//vis[i]=1表示节点i已经求过到源点的单源最短路径
vector<int> link[];//link[i]表示i与哪些点连接
int n,m;
int a,b,c; struct Node{
int u,dis; bool operator<(const Node tmp) const{
return dis>tmp.dis; //优先级序列默认的是最先取出的是“最大的”。
}
//如果按从小到大排,则优先级队列取最大的。
//如果从大到小排,则优先级队列取最小的。
}; void dijkstra() {
priority_queue<Node> q;
Node tmp,a;
memset(dis,maxn,sizeof(dis));
memset(vis,,sizeof(vis));
dis[]=;
a.dis=;
a.u=;
q.push(a);
while(!q.empty()) {
tmp=q.top();
q.pop();
int idx=tmp.u;
vis[idx]=;
for(int k=; k<link[idx].size(); k++) {
int v=link[idx][k];
if(v!=idx && !vis[v]) {
if(dis[idx]+road[idx][v]<dis[v]) {
dis[v]=dis[idx]+road[idx][v];
a.dis=dis[v];
a.u=v;
q.push(a);
}
}
}
} }
int main() {
while(scanf("%d%d",&n,&m)!=EOF) {
if(n== && m==) {
break;
}
U.clear();
memset(road,,sizeof(road));
for(int i=; i<=n; i++)
link[i].clear();
for(int i=; i<m; i++) {
scanf("%d%d%d",&a,&b,&c);
road[a][b]=c;
road[b][a]=c;
link[a].push_back(b);
link[b].push_back(a);
}
dijkstra();
printf("%d\n",dis[n]); }
return ;
}
HDU 2544 最短路(模板题)的更多相关文章
- HDU 2544 最短路(模板题——Floyd算法)
题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 5521.Meeting 最短路模板题
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- poj1511/zoj2008 Invitation Cards(最短路模板题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Invitation Cards Time Limit: 5 Seconds ...
- [poj2449]Remmarguts' Date(K短路模板题,A*算法)
解题关键:k短路模板题,A*算法解决. #include<cstdio> #include<cstring> #include<algorithm> #includ ...
- 牛客小白月赛6 I 公交线路 最短路 模板题
链接:https://www.nowcoder.com/acm/contest/136/I来源:牛客网 题目描述 P市有n个公交站,之间连接着m条道路.P市计划新开设一条公交线路,该线路从城市的东站( ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- HDU 2544 最短路 【Dijkstra模板题】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路:最短路的模板题 Dijkstra 算法是一种类似于贪心的算法,步骤如下: 1.当到一个点时, ...
随机推荐
- HyperMesh生成Flac3D的剖分网格
本帖的目的是探索煤矿沉积岩层采煤过程中的力学分析模拟的前处理方法,计算软件采用公认的Flac3D差分方法. 目前,Flac3D官方提供的剖分网格的生成方法有三种.一是直接使用命令和Fish语句生成,这 ...
- IOS数据解析JSON
//非原创 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSO ...
- asp.net mvc常用的数据注解和验证以及entity framework数据映射
终于有时间整理一下asp.net mvc 和 entity framework 方面的素材了. 闲话少说,步入正题: 下面是model层的管理员信息表,也是大伙比较常用到的,看看下面的代码大伙应该不会 ...
- Android开发之计算器(一)界面设计之activity_main布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- WordPress 主题开发 - (一) 前言 待翻译
原文出自: http://themeshaper.com/2012/10/22/the-themeshaper-wordpress-theme-tutorial-2nd-edition/ THE TH ...
- Git客户端TortoiseGit(Windows系统)的使用方法
本文环境: 操作系统:Windows XP SP3 Git客户端:TortoiseGit-1.8.8.0-32bit 一.安装Git客户端 全部安装均采用默认! 1. 安装支撑软件 msysgit: ...
- mysql 的数据类型
mysql 的数据类型(描述的是字段)三大类:一.整型:1.tinyint(M),其中M是显示宽度,需要配合zerofill,就是前面0填充,存储单位为1个字节(8位),无符文是最大能存储范围0000 ...
- 【python】 入门 搭建环境
1.去官网下载包 基本程序编译器 python-2.7.10.msi 集成开发环境 pycharm-community-4.5.2.exe 包管理工具 pip-7.0.3.tar.gz 2.安装 按顺 ...
- Ios拦截手机短信程序
引用 1.手机要越狱,没有越狱的话,下面的可以不用看了! 2.IOS 要5.0以上,4.xx的同上 首先,声明下!由于公司移动开发的项目中,需要根据手机的内容进行逻辑处理,也就是要实现手机短信拦截 ...
- [转]宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
[转]宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等 http://blog.csdn.net/yiya1989/article/details/784 ...