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

贪心题目

贪心题目

CF2166C Cyclic Merging

尽可能用较小的数来进行较多的合并操作。所以把数按从小到大的顺序删去,删去时选择和较小的一边合并。

合并的过程用双向列表维护就好了。

P3462 POI 2007 ODW-Weights

对于每个 \(m_j\),尽可能选择一个当前最小的可以装下 \(m_j\)\(w_i\),将 \(w_i\) 修改为 \(w_i-m_j\)

这个过程可以转化为进制借位的过程。

P1650 田忌赛马

最大化赢得局数,大概的贪心思路:尽可能保留较快的马,能赢就赢,不能赢尽可能用慢马去输。

具体的,我们将田忌的马力 \(x[i]\) 和齐王的马力 \(y[j]\) 都从小到大排序,那么:

  • \(x[r_x] > y[r_y]\),可以赢就赢,否则之后可能赢不了了。
  • \(x[r_x] < y[r_y]\),必输局,用最小的马力去换。
  • \(x[r_x]==y[r_y]\),要么平,要么还是用最小的马力去换。
    • 如果 \(x[l_x] > y[l_y]\),能赢就赢,这样避免了之后用较快的马去对决。
    • 否则,只能用最小的马去换。

这里注意一个点:到最后有 \(l_x=r_x,l_y=r_y\) 并且 \(x[r_x]==y[r_y]\),这时候是平局而非必输局。

P4823 TJOI2013 拯救小矮人

类似于反悔贪心的想法。

大体的贪心思路:让较弱者能上就上,不能上时让人梯尽可能的高。

具体的,我们按照 \(a_i+b_i\) 的总长升序排序,对于每一个 \(i\)

  • 当前 \(i\) 可以上去,那么就先让他上去。
  • 当前 \(i\) 上不去,考虑从之前上去的人中挑一个 \(j\) 的下来尝试送 \(i\) 上去,\(j\) 应满足 \(a_j \geq a_i\) 并且使 \(i\) 可以上去。

显然,这样做可以使人梯尽可能的高,因为上不去时我们扔一个下来又送一个上去,这样答案不变,但是人梯更高了。

http://www.jsqmd.com/news/48645/

相关文章:

  • 【做题记录】HZOJ 多校-数论/多校-字符串/多校-图论Ⅲ
  • 2025软件工程L班
  • 2025-11-23
  • Chainlit+LlamaIndex 多模态 RAG 开发实战7:从系统架构到功能落地,搞定 PDF/PPT/ 图片全类型文件处理 - 详解
  • 使用Ansible批量安装JDK
  • 使用OpenZeppelin编写可升级智能合约(代理) - all-in
  • 实用指南:【逻辑回归】从线性模型到逻辑回归
  • vuepress2.x支持vue2吗?
  • 贪心专题 1 做题记录
  • static 静态变量
  • 【IO多路转接】IO 多路复用之 select:从接口解析到服务器实战 - 详解
  • java sql注入的危害有哪些
  • 单片机控制继电器及其原理
  • 2025-09-10-Wed-T-Milvus
  • 【Linux】 层层递进,抽丝剥茧:调度队列、命令行参数、环境变量 - 指南
  • 字符串大小写转换
  • vitepress如何支持vue2组件
  • 2025.11.23
  • 20231427田泽航第十周预习报告
  • java linux环境变量
  • java linux服务器
  • 机器人世界杯物流联赛技术解析
  • fcitx5要一统江湖了
  • 2025 年上海金蝶软件定制开发代理商推荐榜出炉
  • 【开发者导航】全自动 AI 视频创作与发布工具:LuoGen-agent - 教程
  • 2025-09-10-Wed-T-AI基础知识
  • JAX 核心特性详解:纯函数、JIT 编译、自动微分等十大必知概念
  • java linux 进程
  • 截图工具
  • linux 下定义常用路径环境变量