鸽巢原理及其扩展——Ramsey定理
第一部分:鸽巢原理
咕咕咕!!!
然鹅大家还是最熟悉我→
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>=1a_1>=1a1>=1.又每周最多刷13题,故a84<=13∗12=156a_{84}<=13*12=156a84<=13∗12=156.
3.因此又有:
- 1<=a1<a2<a3<...<a84<=1561<=a_1<a_2<a_3<...<a_{84}<=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<=a1+11<a2+11<a3+11<...<a84+11<=16712<=a_1+11<a_2+11<a_3+11<...<a_{84}+11<=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<=x<y<=n0<=x<y<=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定理的更多相关文章
- POJ2356 Find a multiple 抽屉原理(鸽巢原理)
题意:给你N个数,从中取出任意个数的数 使得他们的和 是 N的倍数: 在鸽巢原理的介绍里面,有例题介绍:设a1,a2,a3,……am是正整数的序列,试证明至少存在正数k和l,1<=k<=l ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- cf319.B. Modulo Sum(dp && 鸽巢原理 && 同余模)
B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- poj 2356 Find a multiple(鸽巢原理)
Description The input contains N natural (i.e. positive integer) numbers ( N <= ). Each of that n ...
- poj2356 Find a multiple(抽屉原理|鸽巢原理)
/* 引用过来的 题意: 给出N个数,问其中是否存在M个数使其满足M个数的和是N的倍数,如果有多组解, 随意输出一组即可.若不存在,输出 0. 题解: 首先必须声明的一点是本题是一定是有解的.原理根据 ...
- NYOJ 417 死神来了 鸽巢原理
死神来了 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有一天,王小子在遨游世界时,遇到了一场自然灾害.一个人孤独的在一个岛上,没有吃的没有喝的.在他饥寒交迫将要死亡时 ...
- HDU 1005 Number Sequence【多解,暴力打表,鸽巢原理】
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Codeforces.618F.Double Knapsack(构造 鸽巢原理)
题目链接 \(Description\) 给定两个大小为\(n\)的可重集合\(A,B\),集合中的元素都在\([1,n]\)内.你需要从这两个集合中各选一个非空子集,使它们的和相等.输出方案. \( ...
随机推荐
- [转载] ASP.NET MVC (一)——深入理解ASP.NET MVC
个人认为写得比较透彻得Asp.net mvc 文章,所以转载过来,原文链接在最后: ASP.NET vs MVC vs WebForms 许多ASP.NET开发人员开始接触MVC认为MVC与ASP.N ...
- Windows Phone 8加载外部动态链接库DLL(非安装包内的)
Windows Phone 8加载外部动态链接库DLL(非安装包内的) 在<动态加载与插件化>中大概介绍了下,wp8加载非安装包的下动态链接库,这次详细梳理下. 加载外部DLL主要的原理: ...
- Windows服务(system权限)程序显示界面与用户交互,Session0通知Session1里弹出对话框(真的很牛) good
源码资源下载:http://download.csdn.net/detail/stony1980/4512984 1.VC2008中编写“Windows服务”(Windows Service)程序 ...
- Linux用户和权限
用户和用户组管理 linux使用用户和组来限制资源的使用. 在linux上运行任何程序或命令都要以一个具体的用户来运行,这个用户的权限决定了相应的程序能访问的资源和能执行的操作. 用户相关命令 组是用 ...
- 伪元素黑魔法:一个替代onerror解决图片加载失败的方案
问题的引出是这样的,在一个项目中有大量的页面主体是table做数据展示,所以就封装了一个table的组件,提供动态渲染的方案.有个问题是数据类型中有图片,对于图片的加载失败我们需要做容错.一般我们的思 ...
- hadoop 数据抽取
#!/bin/bash if [ ! -z $2 ]; then start_time=$1 end_time=$2 else starttime=`date +%Y%m%d%H%M -d '-15 ...
- CL_GUI_ALV_GRID 触发PAI事件(Application event)
*&---------------------------------------------------------------------* *& Report Z_BARRY_A ...
- shell多线程之进程间通信
# 这是一个简单的并发程序,有如下要求: # .有两个程序a和b,希望他们能并发执行,以节约时间 # .a和b都是按照日期顺序执行,但b每日程序的前提条件是当日a的程序已经执行完毕 #解决方案: # ...
- epoll模型的探索与实践
我们知道nginx的效率非常高,能处理上万级的并发,其之所以高效离不开epoll的支持, epoll是什么呢?,epoll是IO模型中的一种,属于多路复用IO模型; 到这里你应该想到了,select, ...
- spring boot + druid + mybatis + atomikos 多数据源配置 并支持分布式事务
文章目录 一.综述 1.1 项目说明 1.2 项目结构 二.配置多数据源并支持分布式事务 2.1 导入基本依赖 2.2 在yml中配置多数据源信息 2.3 进行多数据源的配置 三.整合结果测试 3.1 ...