#P17308. 又一个树上问题
又一个树上问题
[MX-X30-T6] 布谷鸟钟
题目描述
给定一棵以 号节点为根的树,共有 个节点。
每个节点 上维护两个整数:
- 当前值 ,其中 ;
- 模数 ,其中 。
你可以进行任意次操作,也可以一次操作都不进行。
每次操作需要选择一个节点 ,并且必须满足当前的 不是 的倍数,即 。随后,将从节点 到根节点 的简单路径上所有节点 的 同时增加 。
你可以在任意时刻停止操作。
如果两种操作过程结束后得到的数组 不同,则认为它们得到的最终状态不同;如果最终数组完全相同,则只计为一种状态。
请计算从初始状态出发,能够得到多少种不同的最终 数组。答案对 取模。
输入格式
第一行一个整数 ,表示树的节点数。
接下来 行,第 行两个整数 ,表示节点 的初始值和模数。
接下来 行,每行两个整数 ,表示树中存在一条连接节点 和节点 的无向边。
树的根固定为节点 。
输出格式
输出一个整数,表示能够得到的不同最终 数组数量对 取模后的结果。
样例输入
2
0 2
1 2
1 2
样例输出
3
样例说明
初始数组为 。
- 不进行任何操作,可以得到 ;
- 对节点 操作一次,可以得到 ;
- 此时节点 满足 ,再对节点 操作一次,可以得到 。
因此一共可以得到 种不同的最终数组。
数据范围
设 为树中距离根节点最远的节点到根的边数。
| 子任务 | 分值 | 限制 |
|---|---|---|
| 1 | 10 | |
| 2 | 15 | , |
| 3 | 10 | |
| 4 | 20 | ,满足特殊性质 A |
| 5 | ||
| 6 | 25 | 无额外限制 |
特殊性质 A:对于每个 ,节点 的父亲从 中等概率随机选取。
对于所有数据:
- ;
- ;
- 。