【集训笔记】2024 寒假集训 第一天:最优化问题
最优化问题
二分
许多最优化问题可以通过二分来转化为判定性问题。
0-1 分数规划
0-1 分数规划思想用于求解分式最优化问题。可以通过对分式二分判定,转化为某一式子大于/小于常数,然后求对应最值即可。
动态规划
动态规划算法的一大用处就是解决最优化问题。朴素的动态规划效率一般,需要优化。
例题(状态压缩 DP):Luogu P3959 [NOIP2017 提高组] 宝藏
斜率优化
数据结构
一些最优化问题可以用数据结构求解。
例题:[NOI2010] 超级钢琴
本题求 \(k\) 个总和最大,就是求前 \(k\) 大的区间和。类似于 P1631 序列合并,这样的问题可以用堆来求解。
把所有区间按右端点分类,求出每个右端点对应的所有区间中总和最大的丢进大根堆。每次取出堆顶区间,将这个区间和记入答案,同时尽可能将这个右端点对应的下一大的区间丢进堆。
求解某右端点对应的总和第 \(k\) 大的区间可以转化为前缀和上的区间静态第 \(k\) 小问题,用可持久化线段树解决。
参考代码:loj
本文作者:蒟蒻OIer-zaochen
本文链接:https://www.cnblogs.com/JXOIer-zaochen/p/18017722
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步