首页 > 其他分享 >#P1009. 单源最短路

#P1009. 单源最短路

时间:2023-12-11 22:45:29浏览次数:58  
标签:P1009 int 短路 单源 long vis push dis

image

模板代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
vector<pair<int,int>>a[N];
int dis[N],vis[N];
int n,m;
void spfa(){
	for(int i=1;i<=n;i++)dis[i]=0x3f;
	queue<int>q;
	dis[1]=0;
	q.push(1);
	vis[1]=1;
	while(q.size()){
		int t=q.front();
		q.pop();
		vis[t]=0;
		for(auto c:a[t]){
			int v=c.first;
			int w=c.second;
			if(dis[v]>dis[t]+w){
				dis[v]=dis[t]+w;
				if(!vis[v]){
					vis[v]=1;
					q.push(v);
				}
			}
		}
	}
}
signed main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		a[u].push_back({v,w});
	}
	spfa();
	cout<<dis[n];
	return 0;
} 

标签:P1009,int,短路,单源,long,vis,push,dis
From: https://www.cnblogs.com/yufan1102/p/17895764.html

相关文章

  • 12.2迪杰斯特拉方法实现最短路径
    掌握迪杰斯特拉方法设计文档 代码#include<iostream>usingnamespacestd;//迪杰特斯拉:邻接矩阵:一维数组+二维数组+点边数typedefintVexType;#defineMVNum100#defineMaxInt32767intS[MVNum],Path[MVNum],D[MVNum];//迪杰特斯拉的三个数组typedefstruct{......
  • [学习笔记]分层图最短路
    分层图的概念分层图最短路,听名字就知道他和其他最短路不一样,实际也确实如此,可以解决一些普通最短路无法解决的问题。比如有\(n\)个点\(m\)条带权无向边,可以将\(k\)条边进行某些操作,然后求出从\(1\)到\(n\)的最短路,此时即可使用分层图。例题例题1P4568[JLOI2011]......
  • 最短路径
    #include<iostream>#include<cstring>#include<cstdio>usingnamespacestd;constintN=1010;structedge{intv,w;edge*next;};structnode{intk;edge*next;}a[1010];intn;intfind(intu){for(inti=0;i<n;i++){if(a......
  • 路径规划算法 - 求解最短路径 - A*(A-Star)算法
    Dijkstra(迪杰斯特拉)算法A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。A*算法是一个“搜索算法”,实质上是广度优先搜索算法(BFS)的优化A*算法的作用是“求解最短路径......
  • 最短路
    单源最短路:求一个点到其他点的最短路多源最短路:求任意两个点的最短路稠密图用邻接矩阵存,稀疏图用邻接表存储。稠密图:m和n2一个级别稀疏图:m和n一个级别朴素dij:intn,m,s,a,b,c;constintN=100010;structedge{intv,w;};vector<edge>e[N];intd[N],vis[N];......
  • Java逻辑运算符,短路运算
     短路运算 因为c=5,所以c<4为false,又因为逻辑与运算,只要出现一个false就会输出所以booleand=(c<4)&&(c++<4);这行代码直接会输出false,(c++<4)也不会被执行所以输出的结果为false,c=5,而不是c=6.-----------------------------------------------------------------------......
  • 路径规划算法 - 求解最短路径 - Dijkstra算法
    Dijkstra算法的思想是广度优先搜索(BFS)贪心策略。是从一个顶点到其余各顶点的最短路径算法,节点边是不各自不同的权重,但都必须是正数如果是负数,则需要Bellman-Ford算法如果想求任意两点之间的距离,就需要用Floyd算法求节点0->4的最短路径每次从未标记的节点中选择距离......
  • 求最短路径迪杰斯特拉算法
    代码运行截图:完整代码:#include<stdio.h>#include<stdlib.h>#defineMaxSize20#defineMAX999typedefstructArcNode{//边表intadjvex;//边表中是顶点号!!structArcNode*next;intweight;}ArcNode;typedefstructVN......
  • 最短路
    1.稠密图用邻接矩阵来存朴素版dijkstra算法acwing8491#include<bits/stdc++.h>2usingnamespacestd;34constintN=510;5intn,m;6intdis[N];//每个点到起点的最短距离(路)7intg[N][N];//稠密图邻接矩阵来存8boolst[N];//该集合表示状态,表......
  • P3371 【模板】单源最短路径
    【模板】单源最短路径(标准版)题目背景2018年7月19日,某位同学在NOIDay1T1归程一题里非常熟练地使用了一个广为人知的算法求最短路。然后呢?\(100\rightarrow60\);\(\text{Ag}\rightarrow\text{Cu}\);最终,他因此没能与理想的大学达成契约。小F衷心祝愿大家不再......