容斥原理、鴿巢原理快速入門


一、容斥定理

基本描述

在計數時,必須不重不漏。為了使得重疊部分不被重復計算,人們研究出一種新的計數方法,這種方法的基本思想是:先不考慮重疊的情況,把包含於某內容中的所有對象的數目先計算出來,然后把計數時重復計算的數目排斥出去,使得計算的結果既無重復也無遺漏,這種計數的方法稱為容斥原理。

公式表述

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

(題目來源網絡,部分題目可能需要前置技能)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM