HDU 2544 最短路 SPFA 邻接表 模板
输入保证至少存在1条商店到赛场的路线。
2 1
1 2 3
3 3
1 2 5
2 3 5
3 1 2
0 0
3
2 代码:<pre name="code" class="cpp">#include<iostream>
#include<cstdio>
#include<cstring>
#define maxx 99999999
#include<queue>
using namespace std;
struct node{
int to,w;
int pre; //表示 同一起点的前一条边
}edge[20005];
int vis[505],dis[505];
int next[20005];
int m,n;
int tot;
void addedge(int u,int v,int w)
{
int j,t=0;
for(j=next[u];j!=-1;j=edge[j].pre) //去重边
{
if(v==edge[j].to&&w>=edge[j].w)
{
t=1;
break;
}
}
if(t==1)
return;
edge[tot].to=v;
edge[tot].w=w;
edge[tot].pre=next[u];// 邻接表的存储
next[u]=tot++; //
edge[tot].to=u; //构造反向边
edge[tot].w=w;
edge[tot].pre=next[v];
next[v]=tot++;
return;
}
int spfa()
{
queue<int>q;
int now;
for(int i=1;i<=m;i++)
{
vis[i]=0;
dis[i]=maxx;
}
dis[1]=0;
vis[1]=1;
q.push(1);
while(!q.empty())
{
now=q.front();
q.pop();
vis[now]=0; //反向边
for(int i=next[now];i!=-1;i=edge[i].pre) //遍历同一起点的全部边(从最后一条边開始)
{
int v=edge[i].to;
if(dis[v]>dis[now]+edge[i].w)
{
dis[v]=dis[now]+edge[i].w;
if(!vis[v])
{
vis[v]=1;
q.push(v);
}
}
}
}
return dis[m];
}
int main()
{
while(~scanf("%d%d",&m,&n))
{
if(m==0&&n==0)
break;
tot=1;
memset(next,-1,sizeof(next));
while(n--)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
addedge(a,b,c);
}
int s=spfa();
cout<<s<<endl;
}
return 0;
}
HDU 2544 最短路 SPFA 邻接表 模板的更多相关文章
- HDU 2544 最短路(邻接表+优先队列+dijstra优化模版)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu 2544 最短路 (spfa)
最短路 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- poj3159最短路spfa+邻接表
https://vjudge.net/contest/66569#problem/K 相当于模板吧,第一次写spfa的 #include<iostream> #include<cst ...
- 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算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 2544 最短路(floyd+bellman-ford+spfa+dijkstra队列优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目大意:找点1到点n的最短路(无向图) 练一下最短路... dijkstra+队列优化: #i ...
- 【算法系列学习】SPFA邻接表最短路 [kuangbin带你飞]专题四 最短路练习 F - Wormholes
https://vjudge.net/contest/66569#problem/F 题意:判断图中是否存在负权回路 首先,介绍图的邻接表存储方式 数据结构:图的存储结构之邻接表 邻接表建图,类似于头 ...
随机推荐
- HDU3709:Balanced Number(数位DP+记忆化DFS)
Problem Description A balanced number is a non-negative integer that can be balanced if a pivot is p ...
- ALV 数值列负号前置 (EDIT_MASK应用)
1.建立自定义函数 浮点数显示FUNCTION conversion_exit_zsign_output.*"---------------------------------------- ...
- C#中Base64之编码,解码方法
原文:C#中Base64之编码,解码方法 1.base64 to string string strPath = "aHR0cDovLzIwMy44MS4yOS40Njo1NTU3L1 ...
- AES加密例子(python和php版本)
AES加密例子(python和php版本) AES加密例子(python和php版本)
- linux系统日志及其rsyslog服务
日志是系统用来记录系统运行时候的一些相关消息的纯文本文件 /var/log下保存着大量的纯文本日志文件 日志的目的是为了保持相关程序的运行状态,错误消息,为了对系统运行进行错误分析使用 1.内核消息 ...
- poj 2184 Cow Exhibition(背包变形)
这道题目和抢银行那个题目有点儿像,同样涉及到包和物品的转换. 我们将奶牛的两种属性中的一种当作价值,另一种当作花费.把总的价值当作包.然后对于每一头奶牛进行一次01背包的筛选操作就行了. 需要特别注意 ...
- OPPO通过AWS节约大量成本提供海外服务
关于OPPO OPPO最早被人熟知是在以MP3和MP4为代表的影音市场.转型进入手机市场后,OPPO获得了更大发展机遇,近几年更是成为发展速度最快的国产品牌之中的一个.早在2010年前就開始了海外市场 ...
- BDIA增强
SE24 CL_EXITHANDLER的方法GET_INSTANCE中有基本上所有的增强都会走这边,打上断点查找增强名称,或者在程序中全局搜索GET_INSTANCE关键字 然后 SE19 下 ...
- WPF入门介绍
Windows Vista已经于2007年1月30正式发行零售版本,安装Vista的计算机将会大量出现.在Vista时代,身为编程员,就一定要具备Vista桌面应用开发的能力.而开发Vista桌面应用 ...
- hdu 5090 Game with Pearls
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 题意:n个数,k,给n个数加上k的正倍数或者不加,问最后能不能凑成1 到 n的序列 题目分类:暴 ...