46分 BFS 最长路 求助!!! 悬关
查看原帖
46分 BFS 最长路 求助!!! 悬关
785636
2022_37_yzyUUU楼主2024/5/7 17:53

悬关

#include <bits/stdc++.h>
using namespace std;
int n,m,u,v,w,ans,dis[1505];
vector<pair<int,int> > g[1505];
void bfs(){
   priority_queue<pair<int,int> > q;
   memset(dis,-1,sizeof(dis));
   q.push(make_pair(0,1));
   dis[1]=-1;
   while(q.size()){
   	int now=q.top().second,w=q.top().first;q.pop();
   	if(dis[now]!=-1)continue;
   	dis[now]=w;
   	for(int i=0;i<g[now].size();i++){
   		int v=g[now][i].first,y=g[now][i].second;
   		q.push(make_pair(dis[now]+v,y));
   	}
   }
   cout<<dis[n];
} 
int main() {
   ios::sync_with_stdio(false);
   cin>>n>>m;
   for(int i=1;i<=m;i++){
   	cin>>u>>v>>w;
   	g[u].push_back(make_pair(w,v));
   }
   bfs();
   return 0;
}
2024/5/7 17:53
加载中...