#include #include #include #include using namespace std; struct Seq { int a, b; bool operator < (const Seq &A) const { return b < A.b; } }; Seq a[100010]; bool flag[100010]; int main() { int t; scanf("%d", &t); while (t--) { memset(a, 0, sizeof(a)); memset(flag, 0, sizeof(flag)); int n; scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%d", &a[i].a); for (int i = 1; i <= n; i++) scanf("%d", &a[i].b); sort(a+1, a+1+n); int now = 1, cur = 1, cnt = 0; while (now <= n) { if (flag[now] || a[now].a == a[now].b) { now++; cur = now; continue; } while (a[cur].a != a[now].b) { flag[cur] = 1; cur = a[cur].a; } flag[cur] = 1; cnt++; } printf("%d\n", n - cnt); } return 0; }