[c++刷题]贪心算法.N01

题目如上:

首先通过经验分析,要用最少的减半次数,使得数组总和减少至一半以上,那么第一反应就是每次都挑数组中最大的数据去减半,这样可以是每次数组总和值减少程度最大化。

代码思路:利用大根堆去找数据中的最大值,每次减半再次压入大根堆即可。

主要是如何证明贪心策略的正确性 :

我们使用《交换论证法》来证明

圆圈代表每次减半的数,圆圈的个数就代表总操作次数。

相关推荐
坐吃山猪7 分钟前
WebFlux_学习Subscriber总结
java·开发语言·学习·webflux
白露与泡影16 分钟前
Java面试题及答案整理(2026年金九银十最新版,持续更新)
java·开发语言
少控科技20 分钟前
农场设备管理代码(1)
开发语言·c#
❀搜不到21 分钟前
isat-sam分割导出掩码图
开发语言·python
geovindu31 分钟前
java: Memento Pattern
java·开发语言·后端·备忘录模式·行为模式
MC皮蛋侠客38 分钟前
TDengine C++ 系列(11):性能模型与调优——从测量到优化
c++·php·tdengine
曾阿伦39 分钟前
Trae CN Python环境调试debug指南
开发语言·python
PPPPickup44 分钟前
基础知识差缺补漏-面试版持续更新
java·开发语言
兔兔兔兔11 小时前
记录C++ 3
开发语言·c++
黄鸭部落格ShiYuYuanFang1 小时前
【分享】软考每日一练与解析-计组 8/12
java·开发语言