#P489. 树上三染色

树上三染色

题目描述

给定一棵 nn 个点的树,11 号点是树的根,其中一些点已经有了颜色,颜色共三种,以 012 表示。请为还没有染色的点染色,要求每条边的两个端点颜色不能一样。请计算有多少种可行的方案。由于答案可能很大,输出方案数模 109+710^9+7 的余数。

输入格式

第一行:两个整数 nnkk; 第二行:n1n-1 个整数 p2,,pnp_2,\dots,p_n 表示树上 22 号点到 nn 号点各自的父亲编号; 接下来 kk 行:每行两个整数 uucc,表示树上 uu 号点的颜色为 cc0c20\leq c\leq 2)。

输出格式

单个整数:表示染色的方案数模 109+710^9+7 的余数。

4 1
1 1 1
2 0
8

样例解释 1

只有一个叶子的颜色是确定,根可以有两种颜色,另外两个叶子可以各有两种颜色

数据范围

  • 对于 30%30\% 的数据,1kn201\leq k\leq n\leq 20
  • 对于 60%60\% 的数据,1kn50001\leq k\leq n\leq 5000
  • 对于 100%100\% 的数据,1kn1000001\leq k\leq n\leq 100000