zoukankan      html  css  js  c++  java
  • 组合数学入门—TwelveFold Way

    组合数学入门—TwelveFold Way

    你需要解决(12)个组合计数问题。

    (n)个有标号/无标号的球分给(m)个有标号/无标号的盒子

    盒子有三种限制:

    A、无限制

    B、每个盒子至少有一个球

    C、每个盒子至多有一个球

    共有(2 imes2 imes3=12)种问题:

    pictrue

    为了方便 将有标号记为L(labelled) 无标号记为U(unlabelled)

    那么一个问题可以用缩写代替,如ULA表示(n)个无标号的球分给(m)个有标号的盒子,一共有多少种方案。

    现在你的任务是,给定问题的缩写和(n,m),求方案数对(998244353)取模后的值。

    LLA

    这个很明显答案是(m^n),每一个球有(m)种选择

    LLB

    发现这个条件不好满足,考虑容斥,每次强制枚举(i)个盒子里面没有球

    [ans = sum_{i = 0} ^ m (-1) ^ i inom{n}{i} (m - i) ^ n ]

    LLC

    我们发现,因为要求球全部放入盒子,所以当(n > m)肯定无解

    否则答案就是

    [inom{m}{n} imes n! ]

    看看那几个盒子里面有球,并且因为球是不同的,所以要再乘上排列数

    LUB

    发现LUB和LLB的区别就是其实就是({1,2,3},{4,5})({4,5}),({1,2,3})看做一种

    那么我们直接把LLB的答案除以(m!)即可

    这就引出了我们要介绍的东西,第二类斯特林数

    第二类斯特林数,记为(S),(S_n^m)表示把(n)个有标号的球放到(m)个无标号的盒子里面的方案数

    我们可以比较简单的理解第二类斯特林数的递推公式

    [S_{n}^m = S_{n - 1}^{m - 1}+ m imes S_{n - 1}^m ]

    每次新开一个盒子放(i)或者是放入之前的任何一个集合之中

    LUA

    我们既然知道了LLB的答案,直接枚举多少个盒子放了球

    [ans = sum_{i = 1}^mS_{n}^i ]

    到此为止我们可以发现一个奇妙的性质A和B是知一推一的,有无标号仅仅通过乘组合数推出来

    LUC

    这就是比较水的了,直接判断能否放下,放得下就是(1)

    ULB

    经典插板法的模型,ULB也可以在做是这样一个方程的正整数解的个数

    [x_1+x_2+x_3+dots +x_m = n ]

    那么我们看做这样(n)的球插入(m - 1)的版子.分割成(m)部分的方案数

    所以方案数就是

    [inom{n - 1}{m - 1} ]

    ULA

    我们继续上面的方程

    (y_i = x_i+ 1)

    也就是我们现在要解决这个方程的正整数解的个数

    [y_1+y_2+dots+y_m = n+m ]

    同理,可以知道是

    [inom{n + m - 1}{m - 1} ]

    每一组(y)都对应着唯一一组(x)(因为(x)(y)的关系是确定的)

    ULC

    首先,(n > m)肯定无解,接下来只需要考虑(nle m)

    否则答案就是(inom{m}{n})

    UUC

    同LUC

    UUB

    这个不能通过ULB除以(m!)得到

    因为ULB中我们尽管盒子不同,但是球是相同的,所以我们会把({2,3,3})({2,3,3})看做同一种方案,所以直接除以(m!)的前提是上面的例子被看做不同方案,否则就没有排列一说

    那我们设(P_{i,j})表示(i)个无标号的球分到(j)个有标号的盒子里的方案数

    为了保证不会重复计数,我们强制盒子的球数目不增

    转移要么把新球新开一个盒子,要么在前面所有盒子都放一个球

    [P_{i.j} = P_{i - 1,j - 1} + P_{i - j,j} ]

    转移边界有(P_{0,0} = 1)

    这其实就是划分数

    UUA

    首先,我们可以采用老套路,暴力枚举有多少个盒子中放球

    [ans = sum_{i = 1}^m P_n^i ]

    另外类似于ULA的思路,我们发现答案其实是(P_{n + m}^m)

  • 相关阅读:
    Win10下PB停在欢迎窗口界面
    iReport 中使用 Chart 图
    iReport 下载地址
    使用jasperreports-5.6.0.jar导致的问题
    iReport 开发和运行所用版本不一致导致设置字体大小不起作用
    AWS SAA summary--Exam
    构建zabbix监控实验-基础篇
    常用数据结构代码示例
    嵌入式相关知识点整理
    ADB 环境变量配置
  • 原文地址:https://www.cnblogs.com/wyxdrqc/p/11696242.html
Copyright © 2011-2022 走看看