蒟蒻自闭
查看原帖
蒟蒻自闭
224112
闪电皮卡丘楼主2020/7/16 09:08

电脑卡了没数据。。。

#include <bits/stdc++.h>
using namespace std;
struct Node{
	int bian,cnt;
};
vector<Node>g[500007];
int n,s,dp[500007],ans,anss;
void DFS(int now)
{
	for(int i=0;i<g[now].size();i++)
	{
		int v=g[now][i].bian;
		DFS(v);
		dp[now]=max(dp[now],dp[v]+g[now][i].cnt);
	}
	ans=dp[now];
	for(int i=0;i<g[now].size();i++)
	{
		int v=g[now][i].bian;
		anss=anss+(ans-(g[now][i].cnt+dp[v]));
	}
}
int main()
{
	cin>>n;
	cin>>s;
	for(int i=1;i<n;i++)
	{
		Node _;
		int tmp1;
		cin>>tmp1>>_.bian>>_.cnt;
		g[tmp1].push_back(_);
	}
	DFS(s);
	cout<<anss;
	return 0;
}

样例对了结果交上去红红的,,,

2020/7/16 09:08
加载中...