80分,WA#5,求调
查看原帖
80分,WA#5,求调
739731
Cappuccino_mjj楼主2025/7/21 11:34

WA了第5个点,不知道为什么,求调


#include<bits/stdc++.h>
using namespace std;
const int N=100+10;
const int INF=1e8+10;
int n;
int head[N],to[N],ne[N],id;
int cnt[N];
int fa[N];
int ans=INF;
void add(int x,int y)
{
	to[++id]=y,ne[id]=head[x],head[x]=id;
	to[++id]=x,ne[id]=head[y],head[y]=id;
}
int dfs(int u,int f,int sum,int l)
{
//	cout<<u<<" "<<f<<" "<<sum<<" "<<l<<endl;
	int num=sum;
	for(int i=head[u];i;i=ne[i])
	{
		int v=to[i];
		if(v==f)continue;
		num+=dfs(v,u,cnt[v]*l,l+1);
	}
	return num;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int w,l,r;
		cin>>w>>l>>r;
		if(l!=0)add(i,l);
		if(r!=0)add(i,r);
		cnt[i]=w;
	}
	for(int i=1;i<=n;i++)
	{
		cout<<dfs(i,0,0,1)<<endl;
		ans=min(ans,dfs(i,0,0,1));
	}
	cout<<ans;
	return 0;
}
2025/7/21 11:34
加载中...