题目:
代码:
#include <bits\stdc++.h>
using namespace std;
int b[100010]; //b[i]表示距离1号花絮i步的花絮的个数
map <int, list <int> > m; //m[i]表示第i个花絮连接的花絮标号
int ans = 0;
void dfs(int con, int step){
b[step]++;
for(list <int>::iterator it = m[con].begin();it != m[con].end(); it++){
dfs(*it, step+1);
}
}
int main(){
int n, key;
cin >> n;
for(int i = 2;i <= n; i++){
cin >> key;
m[key].push_back(i);
}
dfs(1, 0);
for(int i = 0;i < 100010; i++){
ans += b[i]%2;
}
cout << ans << endl;
return 0;
}