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 ...
随机推荐
- JNI中使用cl命令生成DLL文件
问题描述: 在使用JNI调用DLL时,首先需要生成DLL文件 问题解决: (1)现在使用VS2008的cl.exe程序,生成DLL文件 (1.1)cl.exe环境搭建 注: cl. ...
- HDOJ 3547 DIY Cube 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3547 题目大意:求用$C$种颜色给立方体的8个顶点染色的本质不同的方法.两种方法本质不同即不能通过旋转 ...
- 【HDOJ】【3709】Balanced Bumber
数位DP 题解:http://www.cnblogs.com/algorithms/archive/2012/09/02/2667637.html dfs的地方没太看懂……(也就那里是重点吧喂!)挖个 ...
- 安装 SQL SERVER PROFILER
SQL SERVER 2008 R2 (10.50.40) 版本,安装 SQL SERVER PROFILER:通过 command prompt,使用以下命令:setup.exe /FEATURES ...
- C# \uxxx Unicode编码解码
/// <summary> /// Unicode编码 /// </summary> /// <param name="str"></pa ...
- thinpad E43系列WIN8装WIN7系统
昨晚WIN8系统下装WIN7 折腾了好久,故此总结一下写一篇U盘装WIN7 : 先简述一下思路:BOSS设置启动项------->U盘启动--------> 进入PE删除所有分区----- ...
- 01-03-03【Nhibernate (版本3.3.1.4000) 出入江湖】cascade的测试
相关文章: http://www.cnblogs.com/amboyna/archive/2008/02/18/1072260.html注意上面是hibernate,不是Nhibernate,这解释是 ...
- Unity3D脚本中文系列教程(七)
http://dong2008hong.blog.163.com/blog/static/4696882720140311445677/?suggestedreading&wumii Unit ...
- WCF 笔记 (2) - 传输泛型 List 对象
WCF 笔记 (2) - 传输泛型 List 对象 本帖介绍怎么在 WCF 中,在 Server-side 和 Client-side 之间,传递默认无法传输的 List<T>.List& ...
- Javascript 选项卡
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...