CF954H Path Counting

题目描述

给定一棵有根树。我们用 $d(x)$ 表示节点 $x$ 的深度:根节点的深度为 $1$,其他任意节点 $x$ 的深度为其父节点 $y$ 的深度加 $1$,即 $d(x)=d(y)+1$。 这棵树具有如下性质:对于每个深度为 $i$ 的节点 $x$,它恰好有 $a_i$ 个子节点。节点的最大深度为 $n$,且 $a_n=0$。 我们定义 $f_k$ 为树中所有无序点对 $(u,v)$,使得它们之间的简单路径上边的数量恰好为 $k$ 的点对数。 请计算 $f_k \bmod 10^9+7$,对于每个 $1 \leq k \leq 2n-2$。

输入格式

输入的第一行包含一个整数 $n$($2 \leq n \leq 5000$),表示节点的最大深度。 第二行包含 $n-1$ 个整数 $a_1,a_2,\ldots,a_{n-1}$($2 \leq a_i \leq 10^9$),其中 $a_i$ 表示所有深度为 $i$ 的节点的子节点数。由于 $a_n=0$,因此输入中不包含 $a_n$。

输出格式

输出 $2n-2$ 个数,第 $k$ 个数表示 $f_k \bmod 10^9+7$。

说明/提示

以下是第一个样例的树结构: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF954H/8a09c9c56935b94e970d5753d7484c0e7a756d44.png) 由 ChatGPT 4.1 翻译