50,782
社区成员
发帖
与我相关
我的任务
分享
#include<bits/stdc++.h>
using namespace std;
const int N=10001;
queue<int>q;
int ans[N],vis[N][N];
int n,m;
int bfs()
{
memset(ans,-1,sizeof(ans));
ans[1]=0;
q.push(1);
while(q.size())
{
auto t=q.front();
q.pop();
for(int i=1;i<=n;i++)
{
if(vis[t][i]&&ans[i] < ans[t]+vis[t][i])
{
ans[i]=ans[t]+vis[t][i];
q.push(i);
}
}
}
return ans[n];
}
int main()
{
cin>>n>>m;
int x,y,z;
for(int i=1;i<=m;i++)
{
cin>>x>>y>>z;
vis[x][y]=max(vis[x][y],z);
}
cout << bfs() << endl;
return 0;
}