#P17219. [2025年南开中学集训]删

[2025年南开中学集训]删

删(delete)

题目描述

小 C 在复习 Ad-hoc 题目,他得到了一棵含有 NN 个节点的树和一个初始只包含一个 00 的序列 aa,树的根节点为 11 且每个节点是黑白两种颜色。

每次他可以选择一个节点,满足该节点在树上没有父亲,删除这个节点及其连接的边,设当前序列 aa 的长度为 kk,那么如果这个节点是黑色,则 ak+11aka_{k+1}\leftarrow 1-a_k;否则 ak+1aka_{k+1}\leftarrow a_k,然后 kk+1k\leftarrow k+1

最后 aa 序列长度一定为 n+1n+1,定义这个序列为可消除的,当且仅当每次可以选择 22 个或 33 个连续的相同的数删除能够使得 aa 序列为空。

小 C 想要知道,对于所有本质不同的操作方案,有多少种满足最后生成的 aa 是可消除的。此处两种操作方案本质不同当且仅当存在一个 ii 满足这两个方案第 ii 次选择的节点不同。

由于答案很大,请输出答案对 109+710^9+7 取模后的结果。

输入格式

第一行一个整数 nn 表示树的节点数量。

第二行 nn 个整数,第 ii 个整数表示节点 ii 的颜色,如果是黑色则为 11,否则为 00

接下来 n1n-1 行,每行两个整数 x,yx,y,表示树上有一条 xxyy 的边。

输出格式

一行一个整数,表示答案对 109+710^9+7 取模后的结果。

样例 1 输入

3
1 0 1
1 2
1 3

样例 1 输出

1

样例 1 解释

对于该组样例,一共有两种可能的删除点的序列,分别是 1,2,31,2,31,3,21,3,2,他们对应的 aa 序列分别为 0,1,1,00,1,1,00,1,0,00,1,0,0,显然,前者可以删空,后者不能删空。

样例 2 输入

5
1 1 0 0 1
1 2
2 3
1 4
2 5

样例 2 输出

1

数据范围

对于所有数据,满足 1n7001\le n\le 7001x,yn1\le x,y\le n

子任务 分值 附加限制
1 5 n10n\le 10
2 n20n\le 20
3 至多两个点是黑色的
4 10 i+2i+2 行输入的 xx 等于 ii,输入的 yy 等于 i+1i+1
5 15 i+2i+2 行输入的 xx 等于 11,输入的 yy 等于 i+1i+1
6 25 n100n\le 100
7 35 无特殊限制