//Jay Shree Krishna
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ll long long
#define pb push_back
#define popb pop_back
#define ff first
#define ss second
#define set_bits(x) __builtin_popcountll(x)
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define mod 1000000007
#define mod1 998244353
typedef tree<pair<ll, ll>, null_type, less<pair<ll, ll>>, rb_tree_tag, tree_order_statistics_node_update > ordered_set;
//find_by_order(k) returns iterator to kth element starting from 0
//order_of_key(k) returns count of elements strictly smaller than k
//Ideas: BS, Prefix Suffix, Difference Array, Bits, Sorting, Try All Combinations
void dfs(int node, vector<vector<int>> &adj, vector<int> &res, vector<int> &vis, vector<int> &arr){
vis[node] = 1;
int f = 0;
map<int, int> mp;
for(auto ele : adj[node]){
if(vis[ele] == 0){
dfs(ele, adj, res, vis, arr);
}
if(arr[ele] == arr[node]){
res[arr[node]] = 1;
}
mp[arr[ele]]++;
if(mp[arr[ele]] > 1){
res[arr[ele]] = 1;
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t;
cin >> t;
while(t--){
int n;
cin >> n;
vector<int> arr(n);
for(int i = 0 ; i < n ; i++){
cin >> arr[i];
}
vector<vector<int>> adj(n);
for(int i = 0 ; i + 1 < n ; i++){
int u, v;
cin >> u >> v;
u--;
v--;
adj[u].pb(v);
adj[v].pb(u);
}
vector<int> res(n + 1, 0);
vector<int> vis(n, 0);
dfs(0, adj, res, vis, arr);
for(int i = 1 ; i <= n ; i++){
cout << res[i];
}
cout << '\n';
}
}
Ly9KYXkgU2hyZWUgS3Jpc2huYQoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZTxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBvcGIgcG9wX2JhY2sKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIHNldF9iaXRzKHgpIF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpCiNkZWZpbmUgc3ooeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgbW9kMSA5OTgyNDQzNTMKdHlwZWRlZiB0cmVlPHBhaXI8bGwsIGxsPiwgbnVsbF90eXBlLCBsZXNzPHBhaXI8bGwsIGxsPj4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGUgPiBvcmRlcmVkX3NldDsKLy9maW5kX2J5X29yZGVyKGspICByZXR1cm5zIGl0ZXJhdG9yIHRvIGt0aCBlbGVtZW50IHN0YXJ0aW5nIGZyb20gMAovL29yZGVyX29mX2tleShrKSByZXR1cm5zIGNvdW50IG9mIGVsZW1lbnRzIHN0cmljdGx5IHNtYWxsZXIgdGhhbiBrCi8vSWRlYXM6IEJTLCBQcmVmaXggU3VmZml4LCBEaWZmZXJlbmNlIEFycmF5LCBCaXRzLCBTb3J0aW5nLCBUcnkgQWxsIENvbWJpbmF0aW9ucwoKdm9pZCBkZnMoaW50IG5vZGUsIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gJmFkaiwgdmVjdG9yPGludD4gJnJlcywgdmVjdG9yPGludD4gJnZpcywgdmVjdG9yPGludD4gJmFycil7CiAgICB2aXNbbm9kZV0gPSAxOwogICAgaW50IGYgPSAwOwogICAgbWFwPGludCwgaW50PiBtcDsKICAgIGZvcihhdXRvIGVsZSA6IGFkaltub2RlXSl7CiAgICAgICAgaWYodmlzW2VsZV0gPT0gMCl7CiAgICAgICAgICAgIGRmcyhlbGUsIGFkaiwgcmVzLCB2aXMsIGFycik7CiAgICAgICAgfQogICAgICAgIGlmKGFycltlbGVdID09IGFycltub2RlXSl7CiAgICAgICAgICAgIHJlc1thcnJbbm9kZV1dID0gMTsKICAgICAgICB9CiAgICAgICAgbXBbYXJyW2VsZV1dKys7CiAgICAgICAgaWYobXBbYXJyW2VsZV1dID4gMSl7CiAgICAgICAgICAgIHJlc1thcnJbZWxlXV0gPSAxOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgdmVjdG9yPGludD4gYXJyKG4pOwogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKyl7CiAgICAgICAgICAgIGNpbiA+PiBhcnJbaV07CiAgICAgICAgfQogICAgICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gYWRqKG4pOwogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpICsgMSA8IG4gOyBpKyspewogICAgICAgICAgICBpbnQgdSwgdjsKICAgICAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICAgICAgdS0tOwogICAgICAgICAgICB2LS07CiAgICAgICAgICAgIGFkalt1XS5wYih2KTsKICAgICAgICAgICAgYWRqW3ZdLnBiKHUpOwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8aW50PiByZXMobiArIDEsIDApOwogICAgICAgIHZlY3RvcjxpbnQ+IHZpcyhuLCAwKTsKICAgICAgICBkZnMoMCwgYWRqLCByZXMsIHZpcywgYXJyKTsKICAgICAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKXsKICAgICAgICAgICAgY291dCA8PCByZXNbaV07CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgIH0KfQ==