#P1027. 操作
操作
D - 操作
题目背景
浪花淘尽,唯我屹立不倒
题目描述
给定一棵树。现在每个点有点权 或 。
我们可以进行操作,一次操作可以选择一条边 ,如果 点权相同则同时改变点权,即从 变成 或从 变成 。否则不变。
对于序列 和 ,我们定义 为点权序列从 变成 的最小操作次数,如果无法完成则为 。
现在我们给出序列 和 ,我们希望求出 。可是因为一些原因, 和 的一些位置被抹去了,在输入中用问号代替。现在,我们希望对于所有可能的 ,求出 的和,答案对 取模。
输入格式
第一行包含一个整数 ,表示树的点数。
接下来 行,每行包含两个整数 ,表示树的一条边 。
接下来一行包含一个字符串,第 个字符代表 的值。
接下来一行包含一个字符串,第 个字符代表 的值。
输出格式
输出一行一个整数,表示所有可能的 的 之和对 取模的结果。
样例
样例输入
3
1 2
2 3
???
???
样例输出
16
数据范围
对于所有数据,, , {0,1,?}
。
子任务 1 ( 10% ) : 。
子任务 2 ( 20% ) : 。
子任务 3 ( 20% ) : 。
子任务 4 ( 20% ) :?
。
子任务 5 ( 30% ) :无特殊限制。