Fxx and tree

Accepts: 2
Submissions: 116
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 131072/65536 K (Java/Others)
问题描述
青年理论计算机科学家Fxx得到了一棵树。

给定一棵有$\:n\:$个节点且以$\:1\:$号节点为根的树,每个点$\:x\:$有黑白两种颜色之一和一个权值$\:A_x$。定义对于点$\:X\:$的操作为将点$\:X\:$子树内与$\:X\:$距离不超过$A_X$的所有点反色。

现在等概率的对树上的节点进行操作,Fxx想知道将整棵树变黑的期望次数,你能帮帮他吗?
输入描述
第一行一个整数$\:T(T\leq100)\:$表示数据组数。

对于每组数据,第一行一个数$\:n(n\leq50)\:$代表节点个数。

接下来$\:n-1\:$行,每行两个数$\:u,v$,表示$\:u\:$是$\:v\:$的父亲。

接下来一行$\:n\:$个整数$\:C_1,C_2,\ldots,C_n\:$表示树上点的颜色,若$\:C_x=0\:$表示这个点为白色,若$\:C_x=1\:$表示这个点为黑色。

接下来一行$\:n\:$个整数$\:A_1,A_2,\ldots,A_n(A_x\leq n)$。
输出描述
对于每组数据,输出一个整数表示答案。

每个答案都四舍五入保留三位小数。

比如说如果标准答案是“3.7998”,你应该输出“3.800”。
输入样例
1
2
1 2
0 0
1 0
输出样例
3.000