热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[杂谈]15.鸽巢原理及相关OJ例题

文章目录1.鸽巢原理2.定理证明3.相关例题3.1OJ例题3.1组合数学相关例题1.鸽巢原理鸽巢原理又名抽屉原理、鞋盒原理,是一种简单的组合数学思想,

文章目录

      • 1. 鸽巢原理
      • 2. 定理证明
      • 3. 相关例题
        • 3.1 OJ例题
        • 3.1 组合数学相关例题


1. 鸽巢原理

鸽巢原理又名抽屉原理、鞋盒原理,是一种简单的组合数学思想,在编程OJ、ACM,中广泛应用,往往能够达到优越的空间复杂度、时间复杂度。多用于解决存在性问题。

2. 定理证明

定理: 如果把n+1个物体放入n个盒子,至少有一个盒子包含两个或更多的物体。

证明: 反证法 n个盒子每个盒子至多一个物品,总数至多为n,与有n+1个物体矛盾。
有等价定理:

定理2:m个元素放进n个集合内,至少有一个集合含有k个元素,其中 :

  • k=m/n (n整除m)

  • k=[m/n]+1 (n不整除m)

定理3: 把无穷多个元素放进有限个集合,必然至少有一个集合里有无穷多个元素。

3. 相关例题


3.1 OJ例题

OJ 的简单应用见博主的:[剑指-Offer] 3. 数组中重复的数字(哈希、抽屉原理、代码优化、多方法)

LeetCode 41. 缺失的第一个正数
LeetCode 442. 数组中重复的数据
LeetCode 448. 找到所有数组中消失的数字
《剑指-Offer》面试题3:数组中重复的数字

其它相关 OJ,也很多百度一下啥都有了~

3.1 组合数学相关例题

在此推荐这篇博文:guoyangfan_:鸽巢原理详解


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • 在Windows系统上安装VMware Workstation 2022的详细步骤
    本文将详细介绍如何在Windows系统上安装VMware Workstation 2022。包括从官方网站下载软件、选择合适的版本以及安装过程中的关键步骤。此外,还将提供一些激活密钥供参考。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文提供了使用Java实现Bellman-Ford算法解决POJ 3259问题的代码示例,详细解释了如何通过该算法检测负权环来判断时间旅行的可能性。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
author-avatar
小玲的夏天_905_735_602
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有