HDU 2544 最短路 (最短路,spfa)
题意:中文题目
思路:spfa+SLF优化。关于SPFA的详情请戳我
#include <bits/stdc++.h>
using namespace std;
const int N=, INF=0x7f7f7f7f;
int n, m;
bool vis[N]; //标记是否在队列中
int dest[N]; //路径长度
int mapp[N][N]; int spfa(int s, int e) //求最短路径
{
memset(dest,0x7f,sizeof(dest));
dest[s]=;
vis[s]=;
deque<int> que;
que.push_back(s);
while(!que.empty())
{
int tmp=que.front();
que.pop_front();
vis[tmp]=;
for(int i=; i<=n; i++)
{
if(mapp[tmp][i] && dest[tmp]+mapp[tmp][i]<dest[i] )
{
dest[i]=dest[tmp]+mapp[tmp][i];
if(!vis[i]) //一旦被更新,必须进队列
{
vis[i]=;
if(que.empty()) que.push_back(i); //SLF优化,路短的优先放前面
else
{
if(dest[que.front()]>dest[i])
que.push_front(i);
else
que.push_back(i);
}
}
}
}
}
return dest[e];
} int main()
{
//freopen("input.txt", "r", stdin);
int a, b, c;
while(scanf("%d%d", &n, &m), n+m)
{
memset(vis,,sizeof(vis));
memset(mapp,,sizeof(mapp)); for(int i=; i<m; i++)
{
scanf("%d%d%d",&a,&b,&c);
mapp[a][b]=mapp[b][a]=c;
}
printf("%d\n",spfa(,n));
} return ;
}
AC代码
Dijkstra
#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int N=+;
const int INF=0x7f7f7f7f; int g[N][N];
int vis[N];
int dist[N]; int dijkstra(int n)
{
memset(vis,,sizeof(vis));
memset(dist,0x7f,sizeof(dist));
dist[]=;
for(int i=; i<=n; i++) //每次用1个点来更新到其他点的距离
{
int flag, small=INF;
for(int j=; j<=n; j++)//找距离最小的点
{
if(!vis[j]&&dist[j]<=small)
{
small=dist[j];
flag=j;
}
}
vis[flag]=;//标记,不需要再用其更新别人。
for(int j=; j<=n; j++)//有边相连就得更新
{
if(g[j][flag])
dist[j]=min(dist[flag]+g[flag][j], dist[j]);
}
}
return dist[n];
} int main()
{
freopen("input.txt", "r", stdin);
int n, m, a, b, w;
while(scanf("%d%d",&n, &m), n+m)
{
memset(g,,sizeof(g));
for(int i=; i<m; i++)
{
scanf("%d%d%d",&a,&b,&w);
g[a][b]=g[b][a]=w;
}
cout<<dijkstra(n)<<endl;
}
return ;
}
AC代码
HDU 2544 最短路 (最短路,spfa)的更多相关文章
- HDU 2544 单源最短路
题目链接: 传送门 最短路 Time Limit: 1000MS Memory Limit: 65536K 题目描述 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是 ...
- HDU 2544(简单最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=2544 /* 使用pair代替结构 */ #include <iostream> #include & ...
- 单源最短路模板 + hdu - 2544
Floyd Floyd 本质上类似一种动态规划,dp [ i ] [ j ] = dp [ i ] [ k ] + dp[ k ] [ j ]. /** * Night gathers, and no ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 2544 最短路 【Dijkstra模板题】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路:最短路的模板题 Dijkstra 算法是一种类似于贪心的算法,步骤如下: 1.当到一个点时, ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
floyd解法 今天初看dijkstra,先拿这两题练手,其他变形题还是不是很懂. 模版题,纯练打字... HDU 1874: #include <cstdio> #define MAXN ...
- UESTC - 1987 童心未泯的帆宝和乐爷 (第k短路 A*算法+SPFA算法 模板)
传送门: http://www.qscoj.cn/#/problem/show/1987 童心未泯的帆宝和乐爷 Edit Time Limit: 10000 MS Memory Limit: ...
- hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题
hdu 2544 求点1到点n的最短路 无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...
随机推荐
- ZedGrap控件绘制图表曲线
问题描述: 使用C#中ZedGrap控件绘制图表曲线图 ZedGrap 介绍说明: 安装ZedGrap控件 ZedGraph控件dll文件: 添加ZedGraph控件,首先在新建立的C#图像工 ...
- 【BZOJ】【1565】【NOI2009】PVZ 植物大战僵尸
网络流/最大权闭合子图+拓扑排序 感动死了>_<,一年多以前刚知道网络流的时候听说了这道名字很带感的题目,现在终于有实力切掉它了. 这题是最大权闭合子图模型的经典应用<_<,首 ...
- IIS7.5 自定义Html/shtml/htm...后缀映射
以添加html后缀的文件的 映射为例: 1.打开iis管理器,点击 2.点击打开处理程序映射 3.添加托管处理程序映射 4.请求路径 *.html 类型: System.Web.UI.PageHand ...
- PHP输出中文乱码的问题
用echo输出的中文显示成乱码, 其实应该是各种服务器脚本都会遇到这个问题, 根本还是编码问题, 一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8 <meta http-equi ...
- Unity3d游戏中添加移动MM支付SDK问题处理
原地址:http://www.tuicool.com/articles/I73QFb 由于移动mm的SDK将部分资源文件放在jar包中,导致Unity无法识别,提示failed to find res ...
- 【C++之STL】理解容器(ing)
“容器可容纳一些数据的模板类” “容器是包容其他对象的对象” 两种类型:顺序容器.关联容器 顺序容器 关联容器 访问成员 顺序访问和随机访问 经过优化关键键值访问 ...
- 在mac上安装hadoop伪分布式
换了macbook pro之后,要重新安装hadoop,但是mac上的jdk跟windows上的不同,导致折腾了挺久的,现在分享出来,希望对大家有用. 一:下载jdk 选择最新版本下载,地址:http ...
- Android开发--Activity生命周期回顾理解
Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servl ...
- 将DJANGO管理界面的filter_horizontal移到前面来复用
参考URL: http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/reusing-djangos-filter_horizontal ...
- P1011 传纸条//dp优化改进状态表示
P1011 传纸条 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2008复赛提高组第三题 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不 ...