为什么相同的代码交第二次就能过
查看原帖
为什么相同的代码交第二次就能过
539720
不要迫害我楼主2023/7/29 10:09
#include<bits/stdc++.h>
using namespace std;
const int N=1000000000;
int n,ans=N,s[110];
struct Node{
	int left,right,father,value;
}t[110];
int jvli(int x,int d){
	if(!x||s[x]) return 0;
	s[x]=1;
	return jvli(t[x].left,d+1)+jvli(t[x].right,d+1)+jvli(t[x].father,d+1)+t[x].value*d;
}
int main(){
	cin >> n;
	for(int i=1;i<=n;i++) cin >> t[i].value >> t[i].left >> t[i].right;
	for(int i=1;i<=n;i++){
		t[t[i].left].father=i;
		t[t[i].right].father=i;
	}
	for(int i=1;i<=n;i++){
		memset(s,0,sizeof(s));
		ans=min(ans,jvli(i,0));
	}
	cout << ans;
	return 0;
}
2023/7/29 10:09
加载中...