基本问题整理

1.组合计数

给定 n 个完全相同的球,要分成 k 组,要求每组球至少有一个球,求方案数。

原问题可以转化成有 n1 个空,要将 k1 块板子插在中间,将其分成 n 份。答案即为 (nr)

2.组合计数

原问题与 1. 几乎一致,不过每组球可以为空。

我们考虑在原来的球数上加上 k 个球,然后再按照 1. 的方法来分,分完后再将原来的 k 个球拿走。答案即为 (n+k1n)

3.组合计数

原问题与 1. 几乎一致,不过要求第 i 组球至少有 ai 个。

我们设分完后第 i 组球有 xi 个,显然根据要求 xiai,据此我们可以列出等式。

x1+x2+...+xk=n

再令 xi=xiai

所以

(x1+a1)+(x2+a2)...(xk+ak)=n

ai 移到右边,可得

x1+...xn=na1a2...ak

因为 xiai,所以 xi0,问题转化成 2. ,答案即为 (ni=1kai+k1k1)

4.组合计数

原问题与 1. 几乎一致,不过要求没有一组球个数超过 m

考虑容斥,暴力枚举有几组球大于 m 个,剩余的随便填,对于每一个子问题就转化成了问题 3. 求解即可。

ans=i=1k(1)i×(ki)×(nm×i+ki1ki1)

posted @   ktq_cpp  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示