有一棵 个点的树 ,树的根节点为 。初始时点 有颜色 ()。
小 L 进行了若干次(可以为 )操作,每次操作她会选择一个满足 的节点 ,对 子树内的所有点 执行 。所有操作结束后得到树 ,其中点 的颜色变为了 。
现在给你最后得到的树 和每个点的颜色 ,你需要求出有多少种不同的可能初始状态 。答案对 取模。
在此题中,我们认为两棵树 不同,当且仅当存在点 ,满足其在 中的颜色为 ,在 中的颜色为 ,且 。
输入第一行一个正整数 (),表示 的点数。
第二行 个整数 (),表示最终状态下每个点的颜色。
接下来 行,每行两个正整数 (,),表示 中存在一条边 。保证所有边构成一棵树。
输出一行一个整数,表示可能的初始状态 的个数对 取模后的值。
3 0 0 1 1 2 1 3
2
5 1 0 0 1 1 1 2 1 3 2 4 2 5
20