当前位置: 首页 > news >正文

【笔记】枚举

文章目录

    • 枚举的概念
    • 枚举步骤
    • 例题:百鸡百钱
      • 方案1
      • 方案二
      • 方案三
    • 例题

枚举的概念

枚举:逐个尝试所有可能的方案。

先把问题划分成一系列离散的状态,然后遍历这些状态来求解问题。

比如求3x+5y=10的正整数解有多少,把x∈[0,10],y∈[0,10]逐个列举就能找到所有解。

枚举步骤

  1. 确定解的空间(几元?一维的还是二维的?)
  2. 确定空间边界(min,max,step)
  3. 估算时间复杂度(别超了)
  4. 如果步骤3的时间复杂度超了,那么想办法减少枚举空间、变换枚举顺序……

例题:百鸡百钱

百鸡百钱是我国古代数学家张丘建在《算经》一书中提出的数学问题:“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”

假设公鸡买了x,母鸡买了y,小鸡买了z。

列方程如下:

5 x + 3 y + 1 3 z = 100 x + y + z = 100 5x+3y+\frac{1}{3}z=100\\ x+y+z=100 5x+3y+31z=100x+y+z=100

方案1

枚举x,枚举y,枚举z,再加上两个上面的约束方程。

解空间是三维的。

方案二

枚举x,枚举y。z可以用上面的方程 z = 100 − x − y z=100-x-y z=100xy表示。

解空间是二维的。

方案三

枚举x。

y、z解二元一次方程组得到x的表达式。

y = 25 − 7 4 x z = 75 + 3 4 x y=25-\frac74x\\ z=75+\frac34x y=2547xz=75+43x

例题

https://blog.csdn.net/m0_73676887/article/details/142313916
https://blog.csdn.net/m0_73676887/article/details/142313873
https://blog.csdn.net/m0_73676887/article/details/142313818
https://blog.csdn.net/m0_73676887/article/details/142313775


http://www.mrgr.cn/news/28685.html

相关文章:

  • BLE 协议之物理层
  • 【蜡笔小新专享】安装虚拟机、PHP、DVWA
  • 【解决方案】LIMS实验室管理系统功能需求及建设方案(Word)
  • 卸载Linux 内核 以及NVIDIA驱动
  • 使用模拟退火算法进行优化的案例:Python实现与详细介绍
  • 8.1 溪降技术:横渡绳
  • 煤炭检测系统源码分享
  • Dart自从引入null check后写Flutter App总有一种难受的感觉
  • ThreadX源码:Cortex-A7的tx_thread_context_restore.S(线程上下文恢复)汇编代码分析
  • Datawhale------Tiny-universe学习笔记——Qwen(1)
  • Zygote进程(孵化器进程)启动流程分析
  • Android Framework(六)WMS-窗口显示流程——窗口内容绘制与显示
  • Java8的Optional简介
  • 计算机三级网络技术总结(三)
  • 在基于线程的环境中运行 MATLAB 函数
  • Mysql | 知识 | 幻读是如何解决的
  • 并查集的应用
  • Python3网络爬虫开发实战(15)Scrapy 框架的使用
  • 找搭子是什么意思?有没有找搭子的平台?靠谱找搭子软件推荐!
  • 7.4 溪降技术:滑行