#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int NMAX=2e5+5;
vector<int>v[NMAX];
int t[NMAX];
int l[NMAX];
int r[NMAX];
long long dp[NMAX];
int kon;
void dfs(int p,int tata)
{
dp[p]=0;
for(auto i:v[p])
{
if(i!=tata)
{
dfs(i,p);
dp[p]+=dp[i];
}
}
if(dp[p]>r[p])
dp[p]=r[p];
else
{
if(dp[p]<l[p])
{
dp[p]=r[p];
kon++;
}
}
}
int main()
{
int test;
cin>>test;
while(test--)
{
int n,m,i,j;
kon=0;
cin>>n;
for(i=1;i<=n;i++)
v[i].clear();
for(i=2;i<=n;i++)
{
cin>>t[i];
v[t[i]].push_back(i);
}
for(i=1;i<=n;i++)
cin>>l[i]>>r[i];
dfs(1,0);
cout<<kon<<"\n";
}
return 0;
}
227B - Effective Approach | 1534B - Histogram Ugliness |
1611B - Team Composition Programmers and Mathematicians | 110A - Nearly Lucky Number |
1220B - Multiplication Table | 1644A - Doors and Keys |
1644B - Anti-Fibonacci Permutation | 1610A - Anti Light's Cell Guessing |
349B - Color the Fence | 144A - Arrival of the General |
1106A - Lunar New Year and Cross Counting | 58A - Chat room |
230A - Dragons | 200B - Drinks |
13A - Numbers | 129A - Cookies |
1367B - Even Array | 136A - Presents |
1450A - Avoid Trygub | 327A - Flipping Game |
411A - Password Check | 1520C - Not Adjacent Matrix |
1538B - Friends and Candies | 580A - Kefa and First Steps |
1038B - Non-Coprime Partition | 43A - Football |
50A - Domino piling | 479A - Expression |
1480A - Yet Another String Game | 1216C - White Sheet |