Orz教主第6次模拟赛之保镖排队

题目

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哦~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值