求解答,贪心QAQ,玄1关(小号关)
#include<iostream>
#include<algorithm>
#include<vector>
#define pb emplace_back
using namespace std;
const int N=1005;
int n,a,fa[N],ans; bool vis[N];
vector<int> g[N]; struct pt{int d,id;}p[N];
inline void setup(int x,int fa,int dis){
if(dis>=3) return ;
vis[x]=1;
for(int i: g[x]){
if(i==fa) continue;
setup(i,x,dis+1);
}
}
int main(){
ios::sync_with_stdio(false),cin.tie(0);
cin>>n; for(int i=2;i<=n;i++)
cin>>a,g[i].pb(a),g[a].pb(i),
p[i].d=p[a].d+1,p[i].id=i,fa[i]=a;
sort(p+1,p+1+n,[](pt x,pt y){return x.d>y.d;});
for(int i=1;i<=n;i++){
if(vis[p[i].id]) continue;
setup(fa[fa[p[i].id]],-1,0);
ans++;
}
cout<<ans-1;
}