注意:此讲适合联赛一试学生,以及参加清华北大等名校的自主招生的学生.

经典计数之分配问题:把n个球放进k个盒子。考虑分配方法有三类:1.无限制 2.每个盒子至多一个(f 单的)3.每个盒子至少一个(f 满的).球和盒子都只考虑两种极端情况:全同或全不同。这样一共会有3*2*2=12种分配情况,如下:

证明:

1.略

2.此时只考虑$k\ge n$这种有意义情况,由分步计数原理易得$(k)_n=k(k-1)\cdots(k-n+1)$

3.此时只考虑$n\ge k$这种有意义情况,第一步将n球分成k部分有$S(n,k)$种方法,第二步

分好的k部分球放到$k$个不同的盒子里有$k!$种排法.所以完成这件事情一共有$k!S(n,k)$种方法.

这里$S(n,k)$定义如下:

4.方程$x_1+x_2+\cdots+x_k=n$的非负整数解.

5.此时只考虑$k\ge n$这种有意义情况,由于“f单”意味着每个盒子里至多放一个球,只需

$k$个盒子里取$n$个,然后取出的盒子各放一个球。

6.方程$x_1+x_2+\cdots+x_k=n$的正整数解.

7.$n$元集至多分成$k$部分.

8.定义

9.$n$元集的$k$部分拆数为第二类$stirling$数$S(n,k)$

10.正整数$n$至多分成$k$个部分。这里分拆数$p(n,k)$定义如下:

注意:这里说的分拆是不计较各部的次序的,比如4的分拆为2,1,1一种。但4的有序分拆有三个(2,1,1);(1,2,1);(1,1,2).一般而言有序分拆好处理.比如$n$的$k$部有序分拆就是$x_1+x_2+\cdots+x_k=n$的正整数个数.

显然$p(n,1)=p(n,n-1)=p(n,n)=1;p(n,2)=[\frac{n}{2}]$,当$k>n$时$p(n,k)=0$一般的$p(n,k)$没有简单的表示方法.

注:$(n_1,n_2,\cdots,n_k)_{\ge}$表示$n_1\ge n_2\ge \cdots \ge n_k\ge1$

原则上所有$p(n,k)$可有递推式逐个求得,例如:

11.定义

12.只需考虑$n\ge k$的情况,正整数$n$的$k$部分拆$p(n,k)$

注:当然除了这12种情况外还有一些情况,比如盒子中有部分相同部分不同。但往往这样

的情况的考察意义不大,因为很难期望会有一般的计数公式.

MT【100】经典计数之分配问题的更多相关文章

  1. 100+经典Java面试题及答案解析

    面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...

  2. HDU 4901 多校4 经典计数DP

    RT 最近不想写博客,累积了一周多的题目,今天趁着周日放假,全部补上吧 dp[i][j]表示前i个数,操作后的值为j的总个数 注意取或不取,有种完全背包的意味.因为数字小于1024,所以异或的结果也绝 ...

  3. ACM组合计数入门

    1 排列组合 1.1 排列 \[A_n^m=n(n-1)(n-2)\cdots(n-m+1)=\frac{n!}{(n-m)!} \] 定义:从 n 个中选择 m 个组成有序数列,其中不同数列的数量. ...

  4. 从零开始山寨Caffe·肆:线程系统

    不精通多线程优化的程序员,不是好程序员,连码农都不是. ——并行计算时代掌握多线程的重要性 线程与操作系统 用户线程与内核线程 广义上线程分为用户线程和内核线程. 前者已经绝迹,它一般只存在于早期不支 ...

  5. NOIP2017 国庆郑州集训知识梳理汇总

    第一天 基础算法&&数学 day1难度测试 如果要用一个词来形容上午的测试,那真是体无完肤.  成绩: 题目 成绩 评价 T1 50 一般 T2 10 大失所望 T3 0 差 基础算法 ...

  6. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  7. Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译

    1. 前言 本文介绍一种无监督的机器翻译的模型.无监督机器翻译最早是<UNSUPERVISED NEURAL MACHINE TRANSLATION>提出.这个模型主要的特点,无需使用平行 ...

  8. shell脚本57问

    [1]交互方式.非交互方式.Shell脚本是什么? 经常与linux打交道,肯定对shell这个词不陌生.不明白shell意思的,可以自行翻译:外壳.去壳. 这个翻译结果怎么可以与计算机系统联系起来呢 ...

  9. 推荐书单(转自GITHUB)

    Skip to content PersonalOpen sourceBusinessExplore Sign upSign in PricingBlogSupport   This reposito ...

随机推荐

  1. Web.config中 mode="RemoteOnly" 跟mode="On" 区别

    转载网址:mode="RemoteOnly" 跟mode="On" 区别 <!-- 自定义错误信息 设置 customErrors mode=" ...

  2. odoo明细表汇总数据

    一.在主表中#改动地方 总结算金额 求和:def _get_subtotal2(self, cr, uid, ids, field_name, arg, context=None): # 初始化 re ...

  3. [Jxoi2012]奇怪的道路 BZOJ3195 状压DP

    分析: k很小,可以状压. f[S][i]表示状态S表示在i之前k+1个中点的边数奇偶情况 之后转移的时候,S的最后一位不能为1 附上代码: #include <cstdio> #incl ...

  4. HUE配置HIVE

    HIVE配置 修改hue.ini配置文件 [beeswax] hive_server_host=node1 hive_server_port= hive_conf_dir=/usr/hive-/con ...

  5. 20155207 实验5 MSF基础应用

    20155207 实验5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:让攻击方式能够发挥作用的通道,更像是没有子弹的枪,提供了攻击方 ...

  6. 20155305《网络对抗》Web安全基础实践

    20155305<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...

  7. Vultr搭建SS服务

    购买VPS VPS又叫虚拟服务器,相当于是讲物理服务器的资源进行虚拟划分然后分配给不同的用户使用. Vultr服务器按小时计费,最低0.004美元/h,算起来2.5美元/月,且destory掉服务器是 ...

  8. 20155323刘威良 网络对抗 Exp2 后门原理与实践

    20155323 刘威良<网络攻防>Exp2后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主机操作Shell, ...

  9. 浅谈Objeact.clone克隆(纯个人理解,如有错误请指正)

    现在先来看一下jdk给出的Object.clone源码和注释 /** * Creates and returns a copy of this object. The precise meaning ...

  10. effective c++ 笔记 (45-48)

    //#45   运用成员函数模版接受所有兼容类型 { /*  1:当你使用智能指针的时候,会发生一个问题,想把一个子类的对象赋给基类的指针变得不可能了, 因为智能指针指定了的是基类的类型,而赋给它的是 ...