纯纯的组合数学

简单

I - IHI’s Homework

传送门
题意:给定 n , s , q,再给定n 个数,称为 a 数组,你需要构造一个长度为 n 的数组 b,对于所有的 i,令 b[i] >= a[i],且 sum(b) <= s。
q 组询问,输入 x 和 y,将 a[x] = y,问 b 数组的方案数。
做法:对于每次修改,都定义一个 k = s - sum(a),代表当前可用的点数。
k < 0:不可能构造成功
k == 0:只有一种方案
k > 0:可以转化成将 k 个小球放入 n 个盒子里,小球相同盒子不同,盒子可以为空,用一种比较好理解的方法解释,现在我总共有 n + k 个东西,我需要从中选择 n 个盒子,两个盒子直接的球为前一个盒子里的球,这样就可用选择出所有方案 C(n + k, n),但是需要注意两点:
如果 k 个小球必须全部用完:那么按照上述方法,这 n + k 个东西第一个东西必须为盒子,否则前几个球就不属于任何盒子,就浪费掉了,所以应该是 C(n + k - 1, n - 1)。
如果 k 个小球不必全部用完:即 C(n + k, n)。

中等

较难

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值