这题是后来比赛完才写的
之前已经说过比赛时出现了种种状况
导致就考了1个小时
所以没时间写
题目因为版权原因不能放出来
相信dalao们读代码也能读出个大概
这题一开始没有想到暴力的树形DP
而是手推了一个公式f[n]=f[n-1]*num
结果发现每种情况的num是不知道的
所以写不下去了
后面收yjq大佬指教发现可以写一个模拟建树过程的DP
在每个点我们考虑2种情况
一是添加左儿子 二是添加深度最小的无右儿子节点的右儿子
那么就可以转移了
用f[i][j]表示有i个叶子节点,有j条左边
那么加左儿子这条边时:
if (j<m-1)
f[i][j+1]=(f[i][j+1]+f[i][j])%mo;
加深度最小的无右儿子节点的右儿子这条边时:
if (j>0)
f[i+1][j-1]=(f[i+1][j-1]+f[i][j])%mo;
最后结果则为f[i][0]