技术栈

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

ny_Ann2024-06-22 5:03

题目如上:

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

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

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

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

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

上一篇:Zabbix 7.0 LTS 发布 - 企业级开源监控解决方案
下一篇:鸿蒙正在跨越“生态繁荣阈值”
相关推荐
huohaiyu
27 分钟前
Hashtable,HashMap,ConcurrentHashMap之间的区别
java·开发语言·多线程·哈希
Predestination王瀞潞
5 小时前
IO操作(Num22)
开发语言·c++
宋恩淇要努力
6 小时前
C++继承
开发语言·c++
沿着路走到底
7 小时前
python 基础
开发语言·python
沐知全栈开发
8 小时前
C# 委托(Delegate)
开发语言
江公望
8 小时前
Qt qmlRegisterSingletonType()函数浅谈
c++·qt
任子菲阳
8 小时前
学Java第三十四天-----抽象类和抽象方法
java·开发语言
csbysj2020
9 小时前
如何使用 XML Schema
开发语言
R6bandito_
9 小时前
STM32中printf的重定向详解
开发语言·经验分享·stm32·单片机·嵌入式硬件·mcu
逆小舟
9 小时前
【C/C++】指针
c语言·c++·笔记·学习
热门推荐
01BongoCat - 跨平台键盘猫动画工具02两千字总结:Codex 国内如何安装和使用的教程,以及如何设置中文回答03GitHub 镜像站点04智能库存管理的需求预测模型:从业务痛点到落地代码的完整实践05UV安装并设置国内源0646个Nano-banana 精选提示词,持续更新中07Cursor Plan Mode:AI 终于知道先想后做了08Linux下V2Ray安装配置指南09GitLab 零基础入门指南:从安装到项目管理全流程105大DOM/BOM核心考点:从入门到精通,让面试官眼前一亮