树形DP
统计人数
int a[100001], size_[10001];
vector<int> sub[100001];
void solve(int i) {
size_[i] = 1;
for (auto it : sub[i]) {
solve(it);
size_[i] += size_[it];
}
}
int main() {
int n;
cin >> n;
for (int i = 2; i <= n; i++) {
cin >> a[i];
sub[a[i]].push_back(i);
}
solve(1);
for (int i = 1; i <= n; i++) cout << size_[i] << " ";
return 0;
}没有上司的舞会
新的背包
没有上司的舞会2
开会
Last updated