#iai22a1. 树上三染色(Tree 3-Coloring)
树上三染色(Tree 3-Coloring)
树上三染色(Tree 3-Coloring)
题目描述
给定一棵 个点的树, 号点是树的根,其中一些点已经有了颜色,颜色共三种,以 0,1,2 表示。请为还没有染色的点染色,要求每条边的两个端点颜色不能一样。请计算有多少种可行的方案。由于答案可能很大,输出方案数模 的余数。
输入格式
第一行:两个整数 和 ;
第二行: 个整数 表示树上 号点到 号点各自的父亲编号;
接下来 行:每行两个整数 和 ,表示树上 号点的颜色为 ()。
输出格式
单个整数:表示染色的方案数模 的余数。
样例输入 #1
4 1
1 1 1
2 0
样例输出 #1
8
样例说明 #1
只有一个叶子的颜色是确定,根可以有两种颜色,另外两个叶子可以各有两种颜色。
数据范围
- 对于 30% 的数据,;
- 对于 60% 的数据,;
- 对于 100% 的数据,。
知识点与难度
本题涉及的知识点从属于 GESP 6级(树形动态规划),难度等级:⭐⭐。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 N≤100 / 特殊: 链状树 / 特殊: 星形树 / 特殊: 全部固定颜色 |
| 2 | 15 | 9~11 | Hack: N=1边界 / Hack: 全固定大链 / Hack: 星形同色冲突 |
| 3 | 30 | 12~20 | 中规模 N≈500~5000 / 大规模 N≈5e4~1e5 压力 |
| 4 | 25 | 21~25 | 随机 N=1~1e5 回归 |