#include<bits/stdc++.h>
using namespace std;
struct edge{
int sta,ed,val,jump;
}a[1000005];
int n,m,jump[1000005],tot,line[1000005],point[1000005],judge[1000005];
void add(int sta,int ed,int val){
tot++;
a[tot].sta=sta;
a[tot].ed=ed;
a[tot].val=val;
a[tot].jump=jump[sta];
jump[sta]=tot;
}
void SPFA(int epos){
int head=0,tail=1,pos;
line[1]=epos;
while(head!=tail){
head++;
if (head>1000000) head=1;
pos=line[head];
for (int i=jump[pos]; i; i=a[i].jump){
if (point[pos]+a[i].val<point[a[i].ed]){
point[a[i].ed]=point[pos]+a[i].val;
if (!judge[a[i].ed]){
judge[a[i].ed]=1;
tail++;
if (tail>1000000) tail=1;
line[tail]=a[i].ed;
if (point[line[head+1]]>point[line[tail]]) swap(line[head+1],line[tail]);
}
}
}
judge[pos]=0;
}
}
int main(){
memset(point,127,sizeof(point));
scanf("%d%d",&n,&m);
for (int i=1,x,y,z; i<=m; i++){
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
add(y,x,z);
}
SPFA(1);
return 0;
}
模板——SPFA
程序员文章站
2022-03-01 15:05:20
...
上一篇: 动画和图形:可绘制动画
下一篇: 模板 - SPFA
推荐阅读
-
zencart模板做的网站 小弟我新下了一批新产品 用ftp把图片传到服务器 但在前台页面不显示图片
-
vue+gin golang快速开发全栈后台管理系统模板
-
bboss内容管理模板宏用法介绍
-
C++ 模板常见特性(函数模板、类模板)
-
vue-cli初始化webpack模板报错
-
ThinkPHP数据模板展示——普通变量
-
php smarty截取中文字符乱码问题?gb2312/utf-8_php模板_脚本之家
-
smarty模板判断数组为空的方法_php实例
-
thinkphp中开启smarty是否不能使用默认的模板布局?
-
thinkphp中空模板与空模块的用法实例,thinkphp中空_PHP教程