【bzoj3174】[Tjoi2013]拯救小矮人
题解:
这题非常容易想到一个错误的贪心
就是按照ai排序 然后尽量取ai小的
但是有很明显的问题就是如果取了小的ai
那会导致那些原本可能存在这些ai就可以去掉的大的人因此不能取了
而有可能可以先去取他们再来取它(当它的b值很大时)
这道题的正解和noip那道国王挺像的
既然按照ai贪心不行
根据上面的分析,比较显然是按照ai+bi来贪心
也就是说我们要保证取得顺序是ai+bi递增的
考虑交换两项来证明这个东西
如果先取后面然后可以再取前面 但是现在先取前面再取后面是不行的
这个贪心就会被推翻
我们可以把它转化成方程
sum+b2>=k
sum-a2+b1>=k
sum-a1+b2<k
a1+a2<b1+b2
很显然234这三个式子是矛盾的
所以贪心是成立的
然后是比较简单的
注意到人数比sum的取值范围小
所以我们定义f[i]表示逃跑i个人剩余ai的最大值
复杂度n^2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术