题目
https://jzoj.net/senior/#main/show/1794
小结
只是一道比较典型的树形DP题,基本上一看到就知道了,对吧,但是问题就在为什么比赛时就是推不出来方程,就是问题了
(?¥__¥?),好好反思一下。
其次,就是做法了,来看看图!
这是一棵树,一棵枝繁叶茂的树。
设g[x]表示在x这个点为根的方案树。
设f[n,m]表示n个数插进m个数中的方案数,这个预处理,f[n,m]=f[n-1,m]+f[n,m-1];
再设son[x]表示x这个点的子节点个数。
那么我们假设x=1,那我们的方案数一定是g[1]*g[j(它的子节点)]*f[sum,son[j]-1];
sum表示当前这个子节点之前的所有子节点,比如当前j=2,那么,sum=5;
就是这一堆:
然后再跟j的儿子搞一搞,就出来了:
两个红圈搞一搞就出来啦~
答案就很显而易见了咯~~
跑27ms哦~~