题目大意:
给定一颗二叉树,将其中一个结点设置医院,使得其余结点到医院的距离之和最短。
思路:
由于数据很小,所以可以枚举每个结点作为医院,算出最短距离。使用:dfs。
O(n^2)
代码:
#include<bits/stdc++.h>
using namespace std;
int n,ans;
vector<int>v[101];//记录每个父结点的孩子
struct node{
int p,l,r;
}a[101];
void dfs(int yy,int sum,int fa){
ans+=a[yy].p*sum;//算出距离
for(int i=0;i<v[yy].size();