第一部分:鸽巢原理

咕咕咕!!!

然鹅大家还是最熟悉我→

a数组:but 我也很重要

$:我好像也出现不少次

以上纯属灌水


文章简叙:鸽巢原理对初赛时的问题求解以及复赛的数论题目都有启发意义。直接的初赛考察一般在提高组出现。相当于抽屉。

别名:鸽笼原理。狄利克雷抽屉原理。

最简单的一种形式:有m+1m+1m+1只鸽子,mmm个笼子,那么至少有一个笼子有至少两只鸽子。当然,换个角度来说:有m−1m-1m−1只鸽子,mmm个笼子,那么至少有一个笼子是空的。

初级加强:有mmm个笼子,k∗m+1k*m+1k∗m+1只鸽子,那么至少有一个笼子有至少k+1k+1k+1只鸽子。

高级加强:令

  • a1,a2,a3...ama_1,a_2,a_3...a_ma1​,a2​,a3​...am​
  • 为正整数。
  • ififif 我们将
  • a1+a2+a3+...+an−n+1a_1+a_2+a_3+...+a_n-n+1a1​+a2​+a3​+...+an​−n+1
  • 个鸽子放入nnn个笼子里,thenthenthen,

||第一个笼子至少有a1a_1a1​只鸽子||第二个笼子至少有a2a_2a2​只鸽子||第三个笼子至少有a3a_3a3​只鸽子||…||第mmm个笼子至少有ama_mam​只鸽子


鸽巢原理的应用

一位洛谷oieroieroier要用121212周的时间准备  CTSC  ~~CTSC~~  CTSC  ,为了练习,他每天至少要刷一题,因为题目有难度,他每星期刷题无法超过131313题。请你证明:存在连续的若干天期间,这位oieroieroier恰好刷了111111题

开始证明:

1.我们可以令a1a_1a1​表示第一天所刷的题数,a2a_2a2​表示前两天所刷的题数,a3a_3a3​表示前三天所刷的题数.之后以此类推

2.而题目说,由于每天都要至少刷1题,所以数列

  • a1,a2,a3,a4,...,a84a_1,a_2,a_3,a_4,...,a_{84}a1​,a2​,a3​,a4​,...,a84​
  • 严格递增。另有a1&gt;=1a_1&gt;=1a1​>=1.又每周最多刷13题,故a84&lt;=13∗12=156a_{84}&lt;=13*12=156a84​<=13∗12=156.

3.因此又有:

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

4.同理,

  • a1+11,a2+11,a3+11,...,a84+11a_1+11,a_2+11,a_3+11,...,a_{84}+11a1​+11,a2​+11,a3​+11,...,a84​+11
  • 同样是一个严格递增序列。范围:
  • 12&lt;=a1+11&lt;a2+11&lt;a3+11&lt;...&lt;a84+11&lt;=16712&lt;=a_1+11&lt;a_2+11&lt;a_3+11&lt;...&lt;a_{84}+11&lt;=16712<=a1​+11<a2​+11<a3​+11<...<a84​+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}+11a1​,a2​,a3​,...,a84​,a1​+11,a2​+11,a3​+11,...,a84​+11
  • 一共168168168个数。其中每一个数都是111到167167167之间的一个整数。

6.根据鸽巢原理可得,其中必有两个数相等!!!

7.既然

  • a1,a2,a3,...,a84a_1,a_2,a_3,...,a_{84}a1​,a2​,a3​,...,a84​
  • 中必然无相等的两个数,
  • 那么a1+11,a2+11,a3+11,...,a84+11a_1+11,a_2+11,a_3+11,...,a_{84}+11a1​+11,a2​+11,a3​+11,...,a84​+11
  • 中同理。那么,必然存在一个xxx和一个yyy,使得
  • ax=ay+11a_x=a_y+11ax​=ay​+11;

8.从而得出结论:这个oieroieroier在第

  • y+1,y+2,y+3,...,xy+1,y+2,y+3,...,xy+1,y+2,y+3,...,x
  • 天内一共刷了111111道题

应用二

证明:在边长为222的等边三角形中放上555个点。则至少存在两个点,他们之间的距离小于等于111.

1.我们先画出一个边长为222的等边三角形。

2.然后把三条边中点两两相连。就形成了这张图。

3.那么根据鸽巢原理,必然有两个点在一个边长为111的小三角形里。

4.而我们知道,边长为111的等边三角形里处处距离都小于等于111

5.于是问题就解决了


应用三

已知n+1n+1n+1个正整数,它们全都小于或等于2n2n2n,证明当中一定有两个数是互质的。

1.要证明这个问题,我们就要利用一个互质的特性:两个相邻整数互质。

2.有了这个突破口,于是我们可以构造n个鸽巢,每一个里依次放入

  • 1,2,3,...,2n1,2,3,...,2n1,2,3,...,2n
  • 这2n个数中的两个数。

3.也就是说,我们要在这其中取出n+1n+1n+1个数。

4.根据鸽巢原理,无论如何,我们都会抽空一个鸽巢。

5.一个鸽巢中的两个数肯定互质,所以问题就解决了。

扒栗史:匈牙利大数学家厄杜斯(PaulErdous,1913 - 1996) 向当年年仅111111岁的波萨(LouisPósa)提出这个问题,而小波萨思考了不足半分钟便能给出正确的答案。


有趣的小(leng)知(xiao)识(hua)

山东高考201720172017年有545454万人。而人的头发大约有8−128-128−12万根。那么必然有两人的头发数量相同。

好了,现在来一道初赛真题收(dian)心(di):

【NOIP2010 提高组】记TTT为一队列,初始时为空,现有n个总和不超过323232的正整数依次入队,如果无论这些数具体为什么值,都能找到一种出队的方式,使得存在某个时刻队列TTT中的数之和恰好为999,那么nnn的最小值是_______________

1.第一眼看到此题,蒟蒻就知道自己只能根据结果推过程了

2.刚开始看了一眼答案:181818.

3.于是就根据这个开始推导过程。我们可以令aia_iai​表示前iii个数的和,并约定:a0=0a_0=0a0​=0.

4.题目要求求出最小的nnn,使得存在0&lt;=x&lt;y&lt;=n0&lt;=x&lt;y&lt;=n0<=x<y<=n满足ay=ax+9a_y=a_x+9ay​=ax​+9;

5.于是我们可将aaa数组看做鸽子,用不能同时取的一组(差为999)的集合构造笼子,

6.构造方法如下:一共有n=18n=18n=18个集合按此方式选取:

  • 0,9、1,10、2,11、...、8,17、18,27、19,28、20,29、...、23,32、24、25、26{0,9}、{1,10}、{2,11}、...、{8,17}、{18,27}、{19,28}、{20,29}、...、{23,32}、{24}、{25}、{26}0,9、1,10、2,11、...、8,17、18,27、19,28、20,29、...、23,32、24、25、26。

7.由题意可知,我们一旦在某个集合中取了两个元素,thenthenthen 一定存在某个时刻队列TTT中数的总和恰好为999.

8.于是由鸽巢原理,我们可以得知:n=18n=18n=18一定满足条件.

但是题目要让我们求出最小值,为了保险起见(都看答案了还保什么险):

1.我们还要证明一下n=17n=17n=17不可行。

2.然鹅我们只需要举出反例即可:

  • 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1

3.说明:因为每到了888个111就被101010隔断,故不可行。


第二部分:Ramsey定理

扒栗史:此定理由Frank Plumpton Ramsey(弗兰克·普伦普顿·拉姆齐,1903−19301903-19301903−1930)提出.

  • 此定理有一个广为流传的例子:6 个人中至少存在3人相互认识或者相互不认识。
  • 转换:该定理等价于证明这6个顶点的完全图的边,用红、蓝二色任意着色,必然至少存在一个红色边三角形,或蓝色边三角形

证明如下:

1、首先,把这6个人设为A、B、C、D、E、F六个点。由A点可以引出AB、AC、AD、AE、AF五条线段。

2、设:如果两个人认识,则设这两个人组成的线段为红色;如果两个人不认识,则设这两个人组成的线段为蓝色。

3、由鸽巢原理可知:这五条线段中至少有三条是同色的。不妨设AB、AC、AD为红色。若BC或CD为红色,则结论显然成立。若BC和CD均为蓝色,则若BD为红色,则一定有三个人相互认识;若BD为蓝色,则一定有三个人互相不认识。

以下部分正在补充,本文未完成

后记:部分内容来自于一本通

鸽巢原理及其扩展——Ramsey定理的更多相关文章

  1. POJ2356 Find a multiple 抽屉原理(鸽巢原理)

    题意:给你N个数,从中取出任意个数的数 使得他们的和 是 N的倍数: 在鸽巢原理的介绍里面,有例题介绍:设a1,a2,a3,……am是正整数的序列,试证明至少存在正数k和l,1<=k<=l ...

  2. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  3. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  4. cf319.B. Modulo Sum(dp && 鸽巢原理 && 同余模)

    B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  5. poj 2356 Find a multiple(鸽巢原理)

    Description The input contains N natural (i.e. positive integer) numbers ( N <= ). Each of that n ...

  6. poj2356 Find a multiple(抽屉原理|鸽巢原理)

    /* 引用过来的 题意: 给出N个数,问其中是否存在M个数使其满足M个数的和是N的倍数,如果有多组解, 随意输出一组即可.若不存在,输出 0. 题解: 首先必须声明的一点是本题是一定是有解的.原理根据 ...

  7. NYOJ 417 死神来了 鸽巢原理

    死神来了 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 有一天,王小子在遨游世界时,遇到了一场自然灾害.一个人孤独的在一个岛上,没有吃的没有喝的.在他饥寒交迫将要死亡时 ...

  8. HDU 1005 Number Sequence【多解,暴力打表,鸽巢原理】

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  9. Codeforces.618F.Double Knapsack(构造 鸽巢原理)

    题目链接 \(Description\) 给定两个大小为\(n\)的可重集合\(A,B\),集合中的元素都在\([1,n]\)内.你需要从这两个集合中各选一个非空子集,使它们的和相等.输出方案. \( ...

随机推荐

  1. Visual studio调试Web发生未能正常启动IIS express

    今天调试web时,不知道怎么搞的,昨天还好好的,结果今天怎么也没法调试了.VS里报的错误是进程号为**的未能正常启动,看了下调试时IIS压根就没启动起来,没关系,看看事件管理器里发生了什么 找到个最关 ...

  2. Linux运维工程师成长路线及应实现的目标

    作为一名运维工程师,需要学习的东西非常多,在学习的过程中也没有任何捷径可言,必须一步一个脚印地学习.积累才能把个人技能提升到相应的高度.根据目前流行的发行版及国际流行的Linux认证,红帽认证和LPI ...

  3. C#每天进步一点--异步编程模式

    C#可以有一个简单易用的机制用于异步执行方法,那就是委托.下面我介绍三种模式,对于这三种模式来说,原始线程都发起了一个异步方法,然后做一些其他处理.然而这些模式不同的是,原始线程获取发起的线程已经完成 ...

  4. 说说IEnumerable和yield

    IEnumerable数据类型是我比较喜欢的数据类型,特别是其强类型IEnumerable<T>更获得Linq的支持使得代码看起来更加优雅.整洁. 编写返回值为IEnumerable(或I ...

  5. spring boot单元测试之RestTemplate(三)——api详解

    本篇内容来自翟永超的<Springcloud微服务实战>,转载请注明. 一.GET请求 在RestTemplate中,对GET请求可以通过如下两个方法进行调用实现. 第一种:getForE ...

  6. 开源|性能优化利器:数据库审核平台Themis的选型与实践

    作者:韩锋 出处:DBAplus社群分享:来源:宜信技术学院 Themis开源地址:https://github.com/CreditEaseDBA 一.面临的挑战 1.运维规模及种类 我相信,这也是 ...

  7. RocketMQ(2)---Docker集群部署RocketMQ

    RocketMQ(2)-Docker集群部署RocketMQ =前言= 1.因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服 ...

  8. python 参考知识点

    本笔记仅作为有编程基础的童鞋在学习python时的参考资料,不适合零基础小白,并假设在你的电脑上已经正确安装了python环境,windows下需要配置环境变量,可以在终端窗口中执行以下命令 set ...

  9. 我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅

    标题:我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅 作者:Lamond Lu 大家好,我是陆楠,来自北京盛安德青岛分公司,今年非常有幸作为讲师参加了微软Insider ...

  10. selenium3+python3自动化测试学习之网页元素定位

    selenium基础实战之定位网页元素技巧 selenium定位网页元素 find_element_by_id,find_element_by_name,find_element_by_class_n ...