社区讨论

拓扑37分过了闭关

P1807最长路参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mjp5cr9r
此快照首次捕获于
2025/12/28 11:05
2 个月前
此快照最后确认于
2025/12/31 18:45
2 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,in[1510],m;
vector<pair<int,int> > g[1510];
int dp[1510];
int hh,tt;
int toposort()
{
	queue<int> q;
	memset(dp,-0x3f,sizeof(dp));
	q.push(1);
    dp[1]=0;
	while(q.size())
	{
		auto a=q.front();
		q.pop();
		for(auto p:g[a])
		{
			int v=p.first,w=p.second;
            dp[v]=max(dp[a]+w,dp[v]);
			if(!(--in[v])) q.push(v);
		}
	}

	if(dp[n]==-0x3f3f3f3f) return -1;
    return dp[n];
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		g[u].push_back({v,w});
		in[v]++;
	}
	cout<<toposort();
	return 0;
} 

回复

2 条回复,欢迎继续交流。

正在加载回复...