1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=110; vector<int> g[N]; int w[N]; int dfs(int u,int father,int d) { int sum=d*w[u]; //当前点 for(auto j:g[u]) { if(j==father) continue; sum+=dfs(j,u,d+1); //累加子树 } return sum; } int main() { int n; cin>>n; for(int i=1;i<=n;i++) { int l,r; cin>>w[i]>>l>>r; if(l) g[i].push_back(l),g[l].push_back(i); if(r) g[i].push_back(r),g[r].push_back(i); } int res=2e9; for(int i=1;i<=n;i++) { //cout<<dfs(i,1,0); res=min(res,dfs(i,-1,0)); } cout<<res; return 0; }
- 1
Information
- ID
- 1021
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 16
- Accepted
- 7
- Uploaded By