73分,求助
查看原帖
73分,求助
849602
封禁用户楼主2024/3/23 08:25
#pragma GCC optimize ("O2")
#include<bits/stdc++.h>
using namespace std;
int n,m,dis[11111],cnt,ing[1501];
struct p{
	int v,w;
}; 
vector<p>e[2001];
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
    	int u,v,w;
    	cin>>u>>v>>w;
    	e[u].push_back({v,w});
	}
	memset(dis,-pow(2,31),sizeof(dis));
	ing[1]=1;
	dis[1]=0;
	queue<int>q;
	q.push(1);
	while(!q.empty()){
		int u=q.front();
		q.pop();
		ing[u]=0;
		for(int i=0;i<e[u].size();i++){
			int v=e[u][i].v,w=e[u][i].w;
			if(dis[v]<dis[u]+w){
				dis[v]=dis[u]+w;
				if(!ing[v]){
					ing[v]=1;
					q.push(v);
				}
			}
		}
	}
	if(dis[n]!=-pow(2,31))cout<<dis[n];
	else cout<<-1;
    return 0;
}
2024/3/23 08:25
加载中...