树的遍历2(子树)
2026-02-26 13:45:17
发布于:浙江
此为模板
#include<bits/stdc++.h>
using namespace std;
int n;
int cnt[10005];
vector<int>g[1005];
void dfs(int u,int fa){
cnt[u]=1;
for(int v:g[u]){
if(v==fa){
continue;
}
dfs(v,u);
cnt[u]+=cnt[v];
}
}
int main(){
cin>>n;
for(int i=2;i<=n;i++){
int x;
cin>>x;
g[x].push_back(i);
}
dfs(1,1);
for(int i=1;i<=n;i++){
cout<<cnt[i]<<endl;
}
return 0;
}
这里空空如也

















有帮助,赞一个