#include #include #include #include #include #include #define M 100005 using namespace std; int A[M],B[M],C[M]; bool mark[M]; int main(){ int T; scanf("%d",&T); while(T--){ memset(mark,0,sizeof(mark)); int n; scanf("%d",&n); int j; for(j=1;j<=n;j++) scanf("%d",&A[j]); for(j=1;j<=n;j++){ scanf("%d",&B[j]); C[A[j]]=j; } int ans=0; for(j=1;j<=n;j++){ int cnt=1,ok=0; int now=B[j]; if(!mark[A[j]]) ok=1; mark[A[j]]=1; while(!mark[now]){ ok=1; //if(j==1) printf("%d\n",now); mark[now]=1; now=B[C[now]]; cnt++; } if(ok) ans+=max(1,cnt-1); } printf("%d\n",ans); } // system("pause"); return 0; }