64分
  • 板块P1807 最长路
  • 楼主ALingyyds
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/26 19:04
  • 上次更新2024/5/26 21:00:20
查看原帖
64分
1318655
ALingyyds楼主2024/5/26 19:04
#include<bits/stdc++.h>
using namespace std;
int n,m,u,v;
int a[1510][1510]={0};
int dp[1510]={0};
int s=0,mx=0;
queue<int>q;
int main(){
	cin>>n>>m;
	int i,l;
	for(i=1;i<=m;i++){
		scanf("%d %d %d",&u,&v,&l);
		if(l>a[u][v])
			a[u][v]=l;
	}
	q.push(1);
	while(!q.empty()){
		int f=q.front();
		q.pop();
		for(i=f+1;i<=n;i++){
			if(a[f][i]!=0){
				q.push(i);
				dp[i]=max(dp[i],dp[f]+a[f][i]);
			}
		}
	} 
	if(dp[n]==0)
		cout<<"-1";
	else
		cout<<dp[n];
	return 0;
}
2024/5/26 19:04
加载中...