代码求调
  • 板块P1807 最长路
  • 楼主wflhx2011
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/17 11:25
  • 上次更新2024/3/17 13:00:58
查看原帖
代码求调
759976
wflhx2011楼主2024/3/17 11:25
#include<bits/stdc++.h>
using namespace std;
int f[200005],ans=-1e6,vis[200005],tot,head[200005];
struct nod
{
	int f,t,d;
}e[200005];
void add(int x,int y,int z)
{
	e[++tot].f=head[x];
	e[tot].t=y;
	e[tot].d=z;
	head[x]=tot;
}
void solve(int u)
{
	if(vis[u])
		return ;
	vis[u]=1;
	for(int v=head[u];v;v=e[v].f)
	{
		solve(e[v].t);
		f[u]=max(f[u],f[e[v].t]+e[v].d);		
	}
	ans=max(ans,f[u]); 
} 
int main()
{
	//memset(f,-0x3f,sizeof(f));
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		add(u,v,w);
	}
	solve(1);
	if(!vis[n]) 
		cout<<-1;
	else
		cout<<ans;
	return 0;
}	
2024/3/17 11:25
加载中...