34分bfs求助
查看原帖
34分bfs求助
984450
zhoujinhong楼主2023/9/20 15:54
#include<bits/stdc++.h>
using namespace std;
int n,m;
int u,v,w;
int vis[1510];
int f[1510][1510];
int step[1510];
vector<int>g[1510];
void bfs(int x)
{
	queue<int>q;
	q.push(x);
	vis[x]=1;
	while(!q.empty())
	{
		for(int i=0;i<g[q.front()].size();i++)
		{
			if(!vis[g[q.front()][i]])
			{
				step[g[q.front()][i]]=max(step[g[q.front()][i]],step[q.front()]+f[q.front()][g[q.front()][i]]);
				vis[g[q.front()][i]]=1;
				q.push(g[q.front()][i]);
			}
		}
		q.pop();
	}
}
int main()
{
	cin>>n>>m;
	while(m--)
	{
		cin>>u>>v>>w;
		g[u].push_back(v);
		f[u][v]=max(f[u][v],w);
	}
	bfs(1);
	cout<<step[n];
	return 0;
}
2023/9/20 15:54
加载中...