容斥原理、鸽巢原理快速入门

一、容斥定理

基本描述

在计数时,必须不重不漏。为了使得重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后把计数时重复计算的数目排斥出去,使得计算的结果既无重复也无遗漏,这种计数的方法称为容斥原理。

公式表述

image

公式的解释:
目的是求解m个集合的并集,首先将m个集合相加,减去集合间两两相交的部分,加上三三相交的部分,再减去四四相交的部分……一直到m个集合相交的部分,当m为偶数时,最后一项的符号为负数,否则为正数。

举例

  1. 当存在两个集合A与B,容斥关系公式为:A∪B =|A∪B| = |A|+|B| - |A∩B |
  2. 当存在三个集合A、B、C,容斥关系公式为:|A∪B∪C| = |A|+|B|+|C| - |A∩B| - |B∩C| - |C∩A| + |A∩B∩C|

练习

  1. UVA 11806 题解
  2. UVA 10325 题解
  3. HDU 1796 题解
  4. HDU 1695
  5. HDU 2204
  6. HDU 4407
  7. HDU 2841
  8. POJ 1091

(题目来源网络,部分题目可能需要前置技能)

二、鸽巢原理(抽屉原理)

基本描述

桌子上有是个苹果,把这十个苹果放到九个抽屉里,无论怎么放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是所说的“抽屉原理”。
更一般的表述:如果每一个抽屉代表一个集合,每一个苹果就可以代表一个元素。加入有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。

第一抽屉原理

原理1

把多余n+1个物体放到n个抽屉里,则至少有一个抽屉里的东西不少于两件。

原理2

把多余mn+1(n不为0)个物体放到n个抽屉里面,则至少有一个抽屉里面不少于(m+1)的物体。

第二抽屉原理

把(mn -1 )个物体放入n个抽屉中,其中必须有一个抽屉不多余(m-1)个物体。
如将3*5-1 = 14个物体放入5个抽屉中,则必定有一个抽屉中的物体数目少于3-1=2.

举例

属相问题

属相有12个,那么任意37个人中,至少有几个人属相相同?

上取整(37 / 12) = 4

招聘问题

有300人到招聘会求职,其中软件设计有100人,市场营销有80人,财务管理有70人,人力资源管理有50人。那么至少有多少人找到工作才能保证一定有70人找的工作专业相同?

考虑最差情况,即软件设计,市场营销,财务管理均招了69人,人力资源管理招了50人,此时再多招1人,就有70人找的工作专业相同了。
故答案为 69*3 + 50 + 1 = 258

衬衫问题

一个抽屉里有20件衬衫,其中4件是蓝的,7件是灰的,9件是红的,则应从中随意取出多少件才能保证有5件是同颜色的?

考虑最差情况,即已经取出了4件蓝色,4件灰色,4件红色,再多取出1件就满足条件。
故答案为 4 + 4 + 4 + 1 = 13

练习

  1. POJ 2356
  2. HDU 1205
  3. POJ 3370
  4. POJ 3145
  5. HDU 5762
  6. HDU 5776
  7. POJ 3370

(题目来源网络,部分题目可能需要前置技能)

posted @ 2017-08-07 10:05  pengwill  阅读(2339)  评论(0编辑  收藏  举报