1. 程式人生 > >鴿巢原理及其擴充套件——Ramsey定理

鴿巢原理及其擴充套件——Ramsey定理

第一部分:鴿巢原理

咕咕咕!!!

luogu

然鵝大家還是最熟悉我→luogu

a陣列:but 我也很重要

$:我好像也出現不少次

以上純屬灌水

文章簡敘:鴿巢原理對初賽時的問題求解以及複賽的數論題目都有啟發意義。直接的初賽考察一般在提高組出現。相當於抽屜。

別名:鴿籠原理。狄利克雷抽屜原理。

最簡單的一種形式:有m+1m+1只鴿子,mm個籠子,那麼至少有一個籠子有至少兩隻鴿子。當然,換個角度來說:有m1m-1只鴿子,mm個籠子,那麼至少有一個籠子是空的。

luogu

初級加強:有mm個籠子,km+1k*m+1只鴿子,那麼至少有一個籠子有至少k+1k+1只鴿子。

高階加強

:令

  • a1,a2,a3...ama_1,a_2,a_3...a_m
  • 為正整數。
  • ifif 我們將
  • a1+a2+a3+...+ann+1a_1+a_2+a_3+...+a_n-n+1
  • 個鴿子放入nn個籠子裡,thenthen

||第一個籠子至少有a1a_1只鴿子||第二個籠子至少有a2a_2只鴿子||第三個籠子至少有a3a_3只鴿子||…||第mm個籠子至少有ama_m只鴿子

鴿巢原理的應用

一位洛谷oieroier要用1212

周的時間準備CTSC~~CTSC~~,為了練習,他每天至少要刷一題,因為題目有難度,他每星期刷題無法超過1313題。請你證明:存在連續的若干天期間,這位oieroier恰好刷了1111

開始證明:

1.我們可以令a1a_1表示第一天所刷的題數,a2a_2表示前兩天所刷的題數,a3a_3表示前三天所刷的題數.之後以此類推

2.而題目說,由於每天都要至少刷1題,所以數列

  • a1,a2,a3,a4,...,a84a_1,a_2,a_3,a_4,...,a_{84}
  • 嚴格遞增。另有a1>
    =1a_1>=1
    .又每週最多刷13題,故a84<=1312=156a_{84}<=13*12=156.

3.因此又有:

  • 1<=a1<a2<a3<...<a84<=1561<=a_1<a_2<a_3<...<a_{84}<=156.

4.同理,

  • a1+11,a2+11,a3+11,...,a84+11a_1+11,a_2+11,a_3+11,...,a_{84}+11
  • 同樣是一個嚴格遞增序列。範圍:
  • 12<=a1+11<a2+11<a3+11<...<a84+11<=16712<=a_1+11<a_2+11<a_3+11<...<a_{84}+11<=167

5.我們把兩個序列合起來看:

  • a1,a2,a3,...,a84,a1+11,a2+11,a3+11,...,a84+11a_1,a_2,a_3,...,a_{84},a_1+11,a_2+11,a_3+11,...,a_{84}+11
  • 一共168168個數。其中每一個數都是11167167之間的一個整數。

6.根據鴿巢原理可得,其中必有兩個數相等!!!

7.既然

  • a1,a2,a3,...,a84a_1,a_2,a_3,...,a_{84}
  • 中必然無相等的兩個數,
  • 那麼a1+11,a2+11,a3+11,...,a84+11a_1+11,a_2+11,a_3+11,...,a_{84}+11
  • 中同理。那麼,必然存在一個xx和一個yy,使得
  • ax=ay+11a_x=a_y+11;

8.從而得出結論:這個oieroier在第

  • y+1,y+2,y+3,...,xy+1,y+2,y+3,...,x
  • 天內一共刷了1111道題

應用二

證明:在邊長為22的等邊三角形中放上55個點。則至少存在兩個點,他們之間的距離小於等於11.

Luogu

1.我們先畫出一個邊長為22的等邊三角形。

2.然後把三條邊中點兩兩相連。就形成了這張圖。

3.那麼根據鴿巢原理,必然有兩個點在一個邊長為11的小三角形裡。

4.而我們知道,邊長為11的等邊三角形裡處處距離都小於等於11

5.於是問題就解決了

應用三

已知n+1n+1個正整數,它們全都小於或等於2n2n,證明當中一定有兩個數是互質的。

1.要證明這個問題,我們就要利用一個互質的特性:兩個相鄰整數互質。

2.有了這個突破口,於是我們可以構造n個鴿巢,每一個裡依次放入

  • 1,2,3,...,2n1,2,3,...,2n
  • 這2n個數中的兩個數。

luogu

3.也就是說,我們要在這其中取出n+1n+1個數。

4.根據鴿巢原理,無論如何,我們都會抽空一個鴿巢。

5.一個鴿巢中的兩個數肯定互質,所以問題就解決了。

扒慄史:匈牙利大數學家厄杜斯(PaulErdous,1913 - 1996) 向當年年僅1111歲的波薩(LouisPósa)提出這個問題,而小波薩思考了不足半分鐘便能給出正確的答案。

有趣的小(leng)知(xiao)識(hua): 山東高考20172017年有5454萬人。而人的頭髮大約有8128-12萬根。那麼必然有兩人的頭髮數量相同。

好了,現在來一道初賽真題收(dian)心(di):

【NOIP2010 提高組】記TT為一佇列,初始時為空,現有n個總和不超過3232的正整數依次入隊,如果無論這些數具體為什麼值,都能找到一種出隊的方式,使得存在某個時刻佇列TT中的數之和恰好為99,那麼nn的最小值是_______________

1.第一眼看到此題,蒟蒻就知道自己只能根據結果推過程

2.剛開始看了一眼答案:1818.

3.於是就根據這個開始推導過程。我們可以令aia_i表示前ii個數的和,並約定:a0=0a_0=0.

4.題目要求求出最小的nn,使得存在0<=x<y<=n0<=x<y<=n滿足ay=ax+9a_y=a_x+9

相關推薦

鴿原理及其擴充套件——Ramsey定理

第一部分:鴿巢原理 咕咕咕!!! 然鵝大家還是最熟悉我→ a陣列:but 我也很重要 $:我好像也出現不少次 以上純屬灌水 文章簡敘:鴿巢原理對初賽時的問題求解以及複賽的數論題目都有啟發意義。直接的初賽考察一般在提高組出現。相當於抽屜。 別名:鴿籠原理

萌新筆記之鴿原理及其應用

前言:本萌新這裡的筆記基本摘自於書+一些自己的淺層理解,如有錯誤請吐槽!歡迎指正! 鴿巢原理 定理: 如果n+1個物體,被放入n個盒子,那麼至少有一個盒子包含兩個或多個物體。(這一點無需證明也能理解吧

acm組合數學及其應用--容斥原理鴿原理(一)

acm組合數學及其應用–容斥原理與鴿巢原理 追逐青春的夢想,懷著自信的心,永不放棄 1、容斥原理 定理一(德摩根定理) 若A和B是全集U的子集, 1、則A和B並集的補集等於A的補集與B的補集的交集 2、則A和B交集的補集等於A的補集

POJ 3370 Halloween treats 鴿原理 解題

for -1 pri style swe ont tro pan ets Halloween treats 和POJ2356差點兒相同。 事實上這種數列能夠有非常多,也能夠有不連續的,只是利用鴿巢原理就是方便找到了連續的數列。並且有這種數列也必然能夠找到。 #incl

HDU 1205 鴿原理

int 技術 its pan lose 技術分享 else bit col #include <bits/stdc++.h> using namespace std; long long abs_(long long a,long

騷操作之鴿原理

參加 style 組合數 text int 一段 組合 10個 有時 桌上有十個蘋果,要把這十個蘋果放到九個抽屜裏,無論怎樣放,我們會發現至少會有一個抽屜裏面至少放兩個蘋果。這一現象就是我們所說的“抽屜原理”。 抽屜原理的一般含義為:“如果每個抽屜代表一個集合,每一個蘋果就

poj Find a multiple【鴿原理

一個 while tps int www. span space ML .html 參考:https://www.cnblogs.com/ACShiryu/archive/2011/08/09/poj2356.html 鴿巢原理??? 其實不用map但是習慣了就打的map

[POJ2356] Find a multiple 鴿原理

first can pro iat tro tdi num name som Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8776

[BZOJ4722] 由乃[鴿原理+bitset+倍增]

能夠 ++ got while getchar() ace lowbit its set 題意 給定長為 \(n\) 序列 \(a\) ,要求支持兩種操作: \(1.\) 詢問在一個區間 \([l,r]\) 中,是否能夠選出兩個交集為空的集合 $ \rm X?,Y$, 使得

Find a multiple POJ - 2356 鴿原理

鴿巢原理見《組合數學》第43頁應用3 如下圖: 原題連結:點選開啟連結 Find a multiple Time Limit: 1000MS   Memory Limit:&nb

POJ 3370 鴿原理

這個題要知道一個定理。 給定m個數,a1,a2,a3,.....am,至少存在整數k,l,(1<=k<l<=m)使得ak+....+al是m的倍數。 構造字首和: s1=a1; s2=a1+a2; s3=a1+a2+a3; ... sm=a1+

poj 3714 Raid (分治+一點鴿原理

題目連結:poj 3714 題意:給個n,首先個n個點的位置,再給n個人的位置,問你,人到點最短距離是多少? 參考部落格:http://yzmduncan.iteye.com/blog/1432880 https://www.cnblogs.com/captain1/p/960755

詳解鴿原理【組合數學】

鴿巢原理的簡單形式: 如果要把n+1個物體,放進n個盒子,那麼至少有一個盒子包含兩個或更多的物體。 證明:用反證法。如果這n個盒子中的每一個都至多含有一個物體,那麼物體的最多數量是n。這與我們有n+1個物體的實際情況相矛盾,故不成立。 當然,對於鴿巢原理的

淺談容斥原理鴿原理(抽屜原理

容斥原理 演算法簡述 在集合S中至少具有,,…中的一個元素的個數是: 主要運用場合與思路: 簡單的講:容斥原理的最重要的應用就是去重。如果完成一件事情有n類方式,…,每一類進行方式有中方法(1 <= i <=n),但是這些

鴿原理應用於一道十分有意思的題目

在組合數學中學習鴿巢原理。其中一道例題是這樣的: 從1,2,3,4,..., 200這200個整數中選取101個整數,則一定存在兩個數存在整除關係? 解答: 一個數對其按照2進行因式分解,總可寫成n = 2 ^ k * t(其中k >=0, t為奇數)。例如2 = 2

一個簡單的鴿原理的應用

鴿巢原理:如果k+1個或者更多的物體放入k個盒子,那麼至少有一個盒子包含了2個或者更多的物體。 證明:對每個整數n,存在一個數是n的倍數,且它的十進位制表示中只出現0和1. 證:首先要知道當一個數被n正處時存在n個可能的餘數,那麼現在考慮有n+1個整數,1,11,111,1

組合數學之四 —— 鴿原理

嘿,大家統統圍過來,給你們看一個很棒的東西,那是一種很酷很辣很炫很Top的東西: 基本知識 如果要把n+1個物品放進n個盒子中,那麼至少有一個盒子包含兩個或更多東西 這個就是鴿巢原理,本文完 原理很簡單,我們提出兩個推論: 如果將n個物體

[YT2sOJ1404]多重集[鴿原理]

class swa emp 交換 存在 ret 前綴 out soj 首先進行一個處理:若a的元素和大於b的元素和,則交換序列 a 和 b 令 A 表示序列a的前綴和數組 B表示序列b的前綴和數組 對於A中的每個元素 \(A_i\) ,B中一定存在 \(B_j\) 滿足 \

poj2356Find a multiple——鴿定理運用

pac using clas long long ems .org sizeof true problem 題目:http://poj.org/problem?id=2356 N個數,利用鴿巢定理可知應有N+1個前綴和(包括0),因此其%N的余數一定有重復; 同余的兩個前綴

NYOJ:死神來了(鴿定理

http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=417 描述 有一天,小王子在遨遊世界時,遇到了一場自然災害。一個人孤獨的在一個島上,沒有吃的沒有喝的。在他飢寒交迫將要死亡時,死神來了。由於這個死神在成神之前是一個數學家,所以他有一