题意:
给你一颗n个点的树,每一次你只能删除度数为1的点,问你有多少种方案可以把整棵树删到只剩一个点,
两个方案不同,当且仅当有一个点删除的顺序不同。答案MOD998244353
解析
换根dp:对于一颗无根树,先确定一个根后,求出答案的公式
然后再从确定的根出发,按照dfs顺序,分别将根转移到所有节点,同时更新答案公式中的变量,求一遍答案
这道题也是一样。先确定一个根,然后求出答案的公式。
确定完根之后,节点删除的顺序一定是确定了。在一棵子树里,根节点一定是最后删除的。
那么根节点的删除顺序一定是大于所有他的孩子以及孙子节点。
对于一棵子树,我们把删除顺序标为1....sz,(1:表示是第一个删除的),那么根节点的标号一定是sz
那么对于根节点的孩子节点一定是他自己那棵子树里面标号最大的点,这个我们就不需要管了,这个子问题
递归求解。同时,根节点的孩子节点之间标号没有相对大小顺序,即对于根的一个孩子j,他从1..sz-1标号里面
取szj个标号(任意,不一定连续),然后再从选出的szj个标号里面算出最大的给自己,剩下的给j的孩子们。
所以对于孩子选标号这个过程我们可以用乘法原则来把他们合并起来(第一个孩子先从1..sz-1里选个,
然后第二个孩子从剩下的s