• n个小球放入m个盒子


    n个小球放入m个盒子

    球可以相同也可以不同,盒子可以一样也可以不一样,盒子可以空也可以不能空,那么一共就有(2*2*2=8)

    总结:

    1 、2 、6组合数

    1.球同,盒不同,不能空

    插板法,(n-1)个空隙插(m-1)个板

    (C(n-1,m-1))

    2.球同,盒不同,能空

    如果给每个盒子一个球,就可以把问题转化为不能空的情况了,就相当于(n+m)个小球放入(m)个盒子且不能空

    (C(n+m-1,m-1))

    3.球不同,盒同,不能空

    [第二类斯特林数dp[n][m]代表n个小球放入m个不同的盒子且不能空的方法\ dp[n][m]=m*dp[n-1][m]+dp[n-1][m-1],1<=m<n\ 第n个球可以放在之前的m个箱子,所以m*dp[n-1][m];\也可以新开一个箱子来存放,所以dp[n-1][m-1]\ dp[k][k]=1,k>=0\ i个小球放入i个盒子,就只能1个盒子放1个\ dp[k][0]=0,k>=1\ \ 通项公式:\ 假设集合没有非空的限制,则答案显然是m^n\ 我们可以利用容斥原理,枚举[至少]有几个集合是空的\ s2(n,m)=frac{1}{m!}*sum_{k=0}^{m}(-1)^kdbinom{m}{k}(m-k)^n\ 前面除以m! 因为上面的枚举是有序的,所以要消去顺序 ]

    4.球不同,盒同,可以空

    这个就是第二类斯特林数第二维前缀和——贝尔数

    那就是3的情况(球不同,盒同,不允许为空)用1个盒子+用2个盒子+...+m个盒子

    $ sum_{i=1}^{m}dp[n][i]~ (dp[n][i]是第二类斯特林数))$

    还有一个递推:

    [B_{n+1}=sum_{k=0}^{n}dbinom{n}{k}B_k ]

    5.球不同,盒不同,不能空

    那就是3的情况(球不同,盒同,不允许为空)对盒子进行全排列

    (m!*dp[n][m])

    6.球不同,盒不同,可以空

    每个球都有(m)种选择,且相互独立

    (m^n)

    7.球同,盒同,可以空

    整数划分——

    [也是个dp问题\ dp[i][j]代表球同,盒同,可以空的放法\ 当i>=j时,dp[i][j]=dp[i][j-1]+dp[i-j][j]\ (我们可以在所有的盒子上放一个球dp[i-j][j],\ 也可以不选择这种操作,但是以后都不对其中一个盒子进行操作了,那就是dp[i][j-1])\ 当i<j时,dp[i][i](多余的盒子都没有什么卵用了)\ 当j=1时,1(只有一个盒子了就只能放在那个盒子了,只有一种放法)\ 当i=1时,1(只有一个球了,放哪个盒子都一样,只有一种放法)\ 当i=0时 1(没有球了,也是1种方法) ]

    例题:https://www.luogu.com.cn/problem/P2386

    #include<iostream>
    const int N = 11;
    int dp[N][N] , t, n, m;
    int main() {
    	for (int i = 0; i < N; ++i)
    		for (int j = 1; j < N; ++j) {
    			if (i <= 1 || j == 1) dp[i][j] = 1;
    			else if (i < j) dp[i][j] = dp[i][i];
    			else dp[i][j] = dp[i][j - 1] + dp[i - j][j];
    		}
    	scanf("%d", &t);
    	while (t--) {
    		scanf("%d%d", &n, &m);
    		printf("%d
    ", dp[n][m]);
    	}
    	return 0;
    }
    

    8.球同,盒同,不能空

    那就是7的情况(球同,盒同,可以空)每个盒子先放一个保证不空

    所以答案就是

    (dp[n-m][m](n>=m))

    (0(n<m))

    其中dp是情况7的dp

    bzoj2729s

    全错位排列递推公式

    把编号 1-n的小球放到编号1-n的盒子里,全错位排列(1号球不在1号盒,2号球不在2号盒,依次类推),共有几种情况?

    (f_n=(n-1)(f_{n-1}+f_{n-2}))

  • 相关阅读:
    Sum Root to Leaf Numbers——LeetCode
    Search a 2D Matrix ——LeetCode
    Surrounded Regions——LeetCode
    Palindrome Partitioning——LeetCode
    Reverse Linked List II——LeetCode
    Word Break II——LeetCode
    POJ1163——The Triangle
    3Sum Closest——LeetCode
    House Robber——LeetCode
    amqp 抓包
  • 原文地址:https://www.cnblogs.com/ke-xin/p/13532206.html
Copyright © 2020-2023  润新知