#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
 
inline int fast_input(void)
{
	char t;
	int x=0;
	int neg=0;
	t=getchar();
	while((t<48 || t>57) && t!='-')
		t=getchar();
	if(t=='-')
		{neg=1; t=getchar();}
    while(t>=48 && t<=57)
    {
        x=(x<<3)+(x<<1)+t-48;
        t=getchar();
    }
	if(neg)
		x=-x;
	return x;
}
 
inline void fast_output(int x)
{
	char a[20];
	int i=0,j;
	a[0]='0';
	if (x<0) {putchar('-'); x=-x;}
	if (x==0) putchar('0');
	while(x)
	{
		a[i++]=x%10+48;
		x/=10;
	}
	for(j=i-1;j>=0;j--)
	{
		putchar(a[j]);
	}
	putchar('\n');
}
 
int f[100001],r[100001],root[100001],visited[100001],child[100001],isroot[100001];
 
void dfs(int i, int j)
{
	visited[i]=j;
	if (!visited[f[i]])
	{
		dfs(f[i],j);
		if (root[f[i]]!=0&&root[f[i]]!=f[i]) {root[i]=root[f[i]]; if (root[i]!=i) r[root[i]]+=r[i];}
		else child[i]=f[i];
	}
	else
	{
		if (visited[f[i]]!=j)
		{
			if (root[f[i]]==0) child[i]=f[i];
			else child[i]=root[f[i]];
		}
		else
		{
			root[i]=f[i];
			r[root[i]]+=r[i];
			isroot[j-1]=f[i];
		}
	}
}
 
int bfs(int v, vector <int> G[100001])
{
	int ans=0,i,len=G[v].size(),temp;
	for(i=0;i<len;i++)
	{
		temp=bfs(G[v][i],G);
		if (temp>0) ans+=temp;
	}
	if (ans+r[v]>0) return ans+r[v];
	else return 0;
}
 
int main()
{
int t,i,j,n,ans;
t=fast_input();
while(t--)
{
	ans=0;
	n=fast_input();
	for(i=1;i<=n;i++) f[i]=fast_input();
	for(i=1;i<=n;i++) r[i]=fast_input();
	for(i=1;i<=n;i++) 
	{
		visited[i]=0;
		isroot[i]=0;
		child[i]=0;
		root[i]=0;
	}
	vector <int> G[100001];
	j=1;
	for(i=1;i<=n;i++) if (!visited[i]) {dfs(i,j); j++;}
	for(i=1;i<=n;i++) if (child[i]) G[child[i]].push_back(i);
	for(i=0;i<j;i++) ans+=bfs(isroot[i],G);
	fast_output(ans);
}
return 0;
}
 
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW5saW5lIGludCBmYXN0X2lucHV0KHZvaWQpCnsKCWNoYXIgdDsKCWludCB4PTA7CglpbnQgbmVnPTA7Cgl0PWdldGNoYXIoKTsKCXdoaWxlKCh0PDQ4IHx8IHQ+NTcpICYmIHQhPSctJykKCQl0PWdldGNoYXIoKTsKCWlmKHQ9PSctJykKCQl7bmVnPTE7IHQ9Z2V0Y2hhcigpO30KICAgIHdoaWxlKHQ+PTQ4ICYmIHQ8PTU3KQogICAgewogICAgICAgIHg9KHg8PDMpKyh4PDwxKSt0LTQ4OwogICAgICAgIHQ9Z2V0Y2hhcigpOwogICAgfQoJaWYobmVnKQoJCXg9LXg7CglyZXR1cm4geDsKfQoKaW5saW5lIHZvaWQgZmFzdF9vdXRwdXQoaW50IHgpCnsKCWNoYXIgYVsyMF07CglpbnQgaT0wLGo7CglhWzBdPScwJzsKCWlmICh4PDApIHtwdXRjaGFyKCctJyk7IHg9LXg7fQoJaWYgKHg9PTApIHB1dGNoYXIoJzAnKTsKCXdoaWxlKHgpCgl7CgkJYVtpKytdPXglMTArNDg7CgkJeC89MTA7Cgl9Cglmb3Ioaj1pLTE7aj49MDtqLS0pCgl7CgkJcHV0Y2hhcihhW2pdKTsKCX0KCXB1dGNoYXIoJ1xuJyk7Cn0KCmludCBmWzEwMDAwMV0sclsxMDAwMDFdLHJvb3RbMTAwMDAxXSx2aXNpdGVkWzEwMDAwMV0sY2hpbGRbMTAwMDAxXSxpc3Jvb3RbMTAwMDAxXTsKCnZvaWQgZGZzKGludCBpLCBpbnQgaikKewoJdmlzaXRlZFtpXT1qOwoJaWYgKCF2aXNpdGVkW2ZbaV1dKQoJewoJCWRmcyhmW2ldLGopOwoJCWlmIChyb290W2ZbaV1dIT0wJiZyb290W2ZbaV1dIT1mW2ldKSB7cm9vdFtpXT1yb290W2ZbaV1dOyBpZiAocm9vdFtpXSE9aSkgcltyb290W2ldXSs9cltpXTt9CgkJZWxzZSBjaGlsZFtpXT1mW2ldOwoJfQoJZWxzZQoJewoJCWlmICh2aXNpdGVkW2ZbaV1dIT1qKQoJCXsKCQkJaWYgKHJvb3RbZltpXV09PTApIGNoaWxkW2ldPWZbaV07CgkJCWVsc2UgY2hpbGRbaV09cm9vdFtmW2ldXTsKCQl9CgkJZWxzZQoJCXsKCQkJcm9vdFtpXT1mW2ldOwoJCQlyW3Jvb3RbaV1dKz1yW2ldOwoJCQlpc3Jvb3Rbai0xXT1mW2ldOwoJCX0KCX0KfQoKaW50IGJmcyhpbnQgdiwgdmVjdG9yIDxpbnQ+IEdbMTAwMDAxXSkKewoJaW50IGFucz0wLGksbGVuPUdbdl0uc2l6ZSgpLHRlbXA7Cglmb3IoaT0wO2k8bGVuO2krKykKCXsKCQl0ZW1wPWJmcyhHW3ZdW2ldLEcpOwoJCWlmICh0ZW1wPjApIGFucys9dGVtcDsKCX0KCWlmIChhbnMrclt2XT4wKSByZXR1cm4gYW5zK3Jbdl07CgllbHNlIHJldHVybiAwOwp9CgppbnQgbWFpbigpCnsKaW50IHQsaSxqLG4sYW5zOwp0PWZhc3RfaW5wdXQoKTsKd2hpbGUodC0tKQp7CglhbnM9MDsKCW49ZmFzdF9pbnB1dCgpOwoJZm9yKGk9MTtpPD1uO2krKykgZltpXT1mYXN0X2lucHV0KCk7Cglmb3IoaT0xO2k8PW47aSsrKSByW2ldPWZhc3RfaW5wdXQoKTsKCWZvcihpPTE7aTw9bjtpKyspIAoJewoJCXZpc2l0ZWRbaV09MDsKCQlpc3Jvb3RbaV09MDsKCQljaGlsZFtpXT0wOwoJCXJvb3RbaV09MDsKCX0KCXZlY3RvciA8aW50PiBHWzEwMDAwMV07CglqPTE7Cglmb3IoaT0xO2k8PW47aSsrKSBpZiAoIXZpc2l0ZWRbaV0pIHtkZnMoaSxqKTsgaisrO30KCWZvcihpPTE7aTw9bjtpKyspIGlmIChjaGlsZFtpXSkgR1tjaGlsZFtpXV0ucHVzaF9iYWNrKGkpOwoJZm9yKGk9MDtpPGo7aSsrKSBhbnMrPWJmcyhpc3Jvb3RbaV0sRyk7CglmYXN0X291dHB1dChhbnMpOwp9CnJldHVybiAwOwp9Cg==
				
				
				
				
				
			 
			
				
			
			
				
Mwo2CjIgMyAxIDEgMiAzCi0xIC0xIC0xIDIgMiAyCjUKNSAxIDQgNSA0IAotOTY0Njg0NDMyIDc0NTEzMzg2IC0zOTAzMzE1ODMgMzA5OTUwMjQxIDIwMjU1NjIxOCAKNgo1IDMgMSAzIDMgMgoxIC0xMCAzIC0yIDQgLTU=
3
6
2 3 1 1 2 3
-1 -1 -1 2 2 2
5
5 1 4 5 4 
-964684432 74513386 -390331583 309950241 202556218 
6
5 3 1 3 3 2
1 -10 3 -2 4 -5