#include #include #include #include #include #include #include #include #include #include #include #define eps 1e-5 #define inf 0x3f3f3f3f #define Linf 0x3f3f3f3f3f3f3f3f #define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b) ((a)<(b)?(a):(b)) #define lson l,m,rt<<1 #define rson m+1,r,rt<<1 | 1 #define lc rt<<1 #define rc rt<<1 | 1 #define getx2(a) ((a)*(a)) #define Pi acos(-1.0) typedef long long LL; using namespace std; #define N 100010 struct PP { int a,b; } pp[N]; bool visit[N]; int slove(int n) { int ans=0; memset(visit,0,sizeof(visit)); for(int i=1; i<=n; i++) { if(visit[i])continue; int cnt=0; int j=-1; visit[i]=1; int k=i; while(j!=pp[i].a) { /// if(cnt!=0) j=pp[k].b; k=j; visit[j]=1; cnt++; } ans+=(cnt==1)?1:(cnt-1); } return ans; } int cmp(const void *a,const void *b) { PP *p1=(PP *)a,*p2=(PP *)b; return p1->a-p2->a; } int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%d",&pp[i].a); } for(int i=1; i<=n; i++) scanf("%d",&pp[i].b); qsort(pp+1,n,sizeof(pp[0]),cmp); int ans=slove(n); printf("%d\n",ans); } return 0; }