题目:
代码:
#include <bitsstdc++.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; }