遍历树
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<queue>
#include<stack>
#include<map>
#define PI acos(-1.0)
#define in freopen("in.txt", "r", stdin)
#define out freopen("out.txt", "w", stdout)
#define kuaidian ios::sync_with_stdio(0);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e4 + 7, maxd = 1e8;
const ll mod = 1e9 + 7;
const int INF = 0x7f7f7f7f;
int n, ans = 0, ff = 0;
vector<int> vec[maxn];
int a[maxn];
int b[maxn] = {0};
void dfs(int id, int f) {
if(a[id] != f) { ans++; }
for(int i = 0; i < vec[id].size(); ++i) {
dfs(vec[id][i], a[id]);
}
}
int main() {
kuaidian;
cin >> n;
for(int i = 2; i <= n; ++i) {
int x;
cin >> x;
vec[x].push_back(i);
}
for(int i = 1; i <= n; ++i) {
cin >> a[i];
}
ans = 0;
dfs(1, 0);
cout << ans << endl;
return 0;
}