{"trustable":true,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"panel_content\"\u003eAlex has a tree $T$ with $n$ vertices conveniently labeled with $1,2,...,n$. Each vertex of the tree is colored black or white. For every integer pair $(a, b)$, Alex wants to know whether there is a subtree of $T$ with exact $a$ white vertices and $b$ black vertices.\u003cbr\u003e\u003cbr\u003eA subtree of $T$ is a subgraph of $T$ that is also a tree.\u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"There are multiple test cases. The first line of input contains an integer $T$ $(1 \\le T \\le 100)$ indicating the number of test cases. For each test case:\u003cbr\u003e\u003cbr\u003eThe first line contains an integer $n$ $(1 \\le n \\le 2000)$. The next line contains a binary string $s$ length $n$ where $s_i$ denoting the color of the $i$-th vertex (\u00270\u0027 means white, while \u00271\u0027 means black). Each of the following $n - 1$ lines contains two integers $a_i, b_i$, denoting an edge between vertices $a_i$ and $b_i$ $(1 \\le a_i, b_i \\le n)$."}},{"title":"Output","value":{"format":"HTML","content":"For each test case, output an integer $W \u003d \\sum_{a\u003d0}^{n}\\sum_{b\u003d0}^{n}{(a+1)(b+1)S(a,b)}$. $S(a,b)\u003d1$ if there is a subtree with exact $a$ white vertices and $b$ black vertices, or $0$ otherwise."}},{"title":"Sample","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3\r\n4\r\n1010\r\n1 4\r\n2 4\r\n3 4\r\n3\r\n101\r\n1 2\r\n2 3\r\n10\r\n1010111001\r\n1 2\r\n1 3\r\n1 8\r\n2 4\r\n2 6\r\n2 7\r\n3 9\r\n4 5\r\n7 10\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e33\r\n15\r\n365\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}