AT_dp_v Subtree

题目描述

有一棵包含 $N$ 个顶点的树。顶点编号为 $1, 2, \ldots, N$。对于每个 $i$($1 \leq i \leq N-1$),第 $i$ 条边连接顶点 $x_i$ 和 $y_i$。 太郎君打算将每个顶点涂成白色或黑色。此时,需要保证任意两个黑色顶点之间,都可以仅通过黑色顶点相互到达。 给定一个正整数 $M$。对于每个 $v$($1 \leq v \leq N$),请回答以下问题: - 以顶点 $v$ 为黑色的所有顶点染色方案有多少种?请输出对 $M$ 取模的结果。

输入格式

输入以如下格式从标准输入读入。 > $N$ $M$ > $x_1$ $y_1$ > $x_2$ $y_2$ > $\vdots$ > $x_{N-1}$ $y_{N-1}$

输出格式

输出 $N$ 行。对于每个 $v$($1 \leq v \leq N$),第 $v$ 行输出以下问题的答案: - 以顶点 $v$ 为黑色的所有顶点染色方案有多少种?请输出对 $M$ 取模的结果。

说明/提示

## 限制条件 - 所有输入均为整数。 - $1 \leq N \leq 10^5$ - $2 \leq M \leq 10^9$ - $1 \leq x_i, y_i \leq N$ - 给定的图为一棵树。 ## 样例解释 1 顶点染色的方案共有 $7$ 种。在这些方案中,顶点 $1$ 为黑色的有 $3$ 种,顶点 $2$ 为黑色的有 $4$ 种,顶点 $3$ 为黑色的有 $3$ 种。 ![](https://img.atcoder.jp/dp/subtree_0_muffet.png) ## 样例解释 4 不要忘记输出答案对 $M$ 取模的结果。 由 ChatGPT 4.1 翻译