组合计数小启发

在DP的领域中还有的很大一部分就是组合计数。

 

以前做了FHQ在集训队作业中的《连边》这道题,大概就是要你给一个图连边是的若干个点度数为奇数。

比较容易发现是一道DP题,但是怎样保证状态不重不漏?

 

常用的方法就是增维,比如按照排序大小扩展啦,按照字典序扩展啦从而使得状态不重,但是还有两种方法可以使得状态不重不漏,那就是除法和减法!

 

除法可能大家用的多,比如最常见的组合数就是利用的除法,从排列数除以N!,但是减法就比较少见了。

 

今天在GYH的集训队作业里面找到了连边这道题的加强版,简要描述如下:

 

FacerN种巧克力,从这N种巧克力选3种共有C(N,3)种可能,从这C(N,3)种选出M种,就一共有3M个巧克力,对于每种巧克力,若至少有两个该种巧克力,则将它们同时吃掉,问各种巧克力剩下的数目和输入相同的选取方案有多少种,输出答案除10007的结果。

 

状态为F[I,J]表示现在已经选了I个巧克力组合,还剩下J种巧克力。这个状态实际上是可以通过巧妙的除法和减法,因为如果选了两个重复的方案,我们依然还是可以知道应该从谁转移过来,因为J值不变。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值