【算法学习之路】5.贪心算法
贪心算法
- 前言
- 一.什么是贪心算法
- 二.例题
- 1.合并果子
- 2.跳跳!
- 3. 老鼠和奶酪
前言
我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新,其他的也会陆陆续续的更新,希望大家点赞收藏我会尽快更新的!!!
一.什么是贪心算法
总是只看眼前,并不考虑以后可能造成的影响,将一个最优决策变成多步决策过程,并在每步总是做出当前看起来是最好的选择,它所做的选择只是在某种意义上的局部最优选择可想而知,并不是所有的时候贪心法都能获得最优解,所以一般使用贪心法的时候,都要确保自己能证明其正确性。
二.例题
1.合并果子
洛谷P1090 [NOIP 2004 提高组] 合并果子

//使用优先队列解决
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;int main() {priority_queue<int, vector<int>, greater<int>>p;//定义一个优先队列且为小顶堆int n; cin >> n;for (int i = 0; i < n; i++) {//将每个数据填入优先队列int a; cin >> a;p.push(a);}int sum = 0;//需要体力的总值while (p.size() > 1) {//当元素只有一个的时候意味着结束//将最小的两个取出来进行合并int first = p.top();p.pop();int last = p.top();p.pop();//将合并的结果填入优先队列int t = first + last;sum += t;p.push(t);}cout << sum;return 0;
}
2.跳跳!
洛谷P4995 跳跳!

//用列表解决
#include <iostream>
#include <list>
#include <cstdlib>
using namespace std;int main() {list<long long> s;//由于数据过大,需要用到long longint n; cin >> n;for (int i = 0; i < n; i++) {//将所有数据填入列表long long a; cin >> a;s.push_back(a);}s.sort();//将列表进行排序long long sum = 0;//消耗的总体力值long long first = 0;long long last = 0;while (s.size() > 0) {//当没有元素结束last = s.back();s.pop_back();sum += (last - first) * (last - first);if (s.size() > 0) {//如果元素是奇数first = s.front();s.pop_front();sum += (last - first) * (last - first);}}cout << sum;return 0;
}
3. 老鼠和奶酪
力扣2611. 老鼠和奶酪

static int cmp(const void* pa, const void* pb) {//比较函数return *(int *)pa - *(int *)pb;
}int miceAndCheese(int* reward1, int reward1Size, int* reward2, int reward2Size, int k) {int sum = 0;//总值int diff[reward1Size];//两只老鼠的差值for(int i = 0; i < reward1Size; i++){sum += reward2[i];//先将所有的奶酪给第二只老鼠吃diff[i] = reward1[i] - reward2[i];//计算出两个老鼠的差值}qsort(diff, reward1Size, sizeof(int), cmp);//将差值排序for(int i = 1; i <= k; i++){sum += diff[reward1Size - i];//将差值填入总数}return sum;
}相关文章:
【算法学习之路】5.贪心算法
贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳!3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新…...
如何打造一个安全稳定的海外社媒账号?
您好!随着TikTok、Instagram、Facebook等海外社媒平台的迅猛发展,越来越多的个人和企业希望借助这些平台实现全球化传播。然而,注册和运营海外社媒账号的过程中,许多人频繁遭遇到封禁、限制和账号关联等问题,常常导致严…...
【Python 数据结构 5.栈】
目录 一、栈的基本概念 1.栈的概念 2.入栈 入栈的步骤 3.出栈 出栈的步骤 4.获取栈顶元素 获取栈顶元素的步骤 二、 Python中的栈 顺序表实现 链表实现 三、栈的实战 1.LCR 123. 图书整理 I 思路与算法 2.LCR 027. 回文链表 思路与算法 3.1614. 括号的最大嵌套深度 思路与算法 …...
Qt开发⑪Qt网络+Qt音视频_使用实操
目录 1. Qt 网络 1.1 UDP Socket 1.2 TCP Socket 1.3 HTTP Client 2. Qt 音视频 2.1 Qt 音频 2.2 Qt 视频 本篇完。 1. Qt 网络 和多线程类似,Qt 为了支持跨平台, 对网络编程的 API 也进行了重新封装。 实际 Qt 开发中进行网络编程,也不一定使用…...
JavaEE--计算机是如何工作的
一、一台计算机的组成部分 1.CPU(中央处理器) 2.主板(一个大插座) 3.内存(存储数据的主要模板) 4.硬盘(存储数据的主要模板) 内存和硬盘对比: 内存硬盘读写速度快慢存…...
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南 本文详细介绍一种基于 Web 搜索方式实现的企业信息查询接口,适用于数据补全、企业资质验证、信息查询等场景。文章内容涵盖接口功能、请求参数、返…...
微信小程序text组件decode属性的小问题
今天学习微信小程序的text组件,这个组件类似于网页制作中的span标签,内联文本只能用 text 组件,不能用 view,如 foo bar </text。 text组件常用属性如下表: 属性说明user-select文本是否可选,该属性会使…...
【计算机网络入门】初学计算机网络(九)
目录 1.令牌传递协议 2. 局域网&IEEE802 2.1 局域网基本概念和体系结构 3. 以太网&IEEE802.3 3.1 MAC层标准 3.1.1 以太网V2标准 编辑 3.2 单播广播 3.3 冲突域广播域 4. 虚拟局域网VLAN 1.令牌传递协议 先回顾一下令牌环网技术,多个主机形成…...
LeetCode 974:和可被 K 整除的子数组
974. 和可被 K 整除的子数组 - 力扣(LeetCode) 给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。 子数组 是数组中 连续 的部分。 示例 1: 输入:nums [4,5,0,-2,-3,1], k …...
vector习题
完数和盈数 题目 完数VS盈数_牛客题霸_牛客网 一个数如果恰好等于它的各因子(该数本身除外)之和,如:6321。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述ÿ…...
001-码云操作
码云操作 一、配置公钥1.官网地址1.进入 git bash2.查看生成的公钥3.设置到 Gitee4.测试 二、初始化一个项目1.新建仓库 一、配置公钥 方便后续提交代码不用填写密码 1.官网地址 官网地址:https://gitee.com/Git码云教程:https://gitee.com/help/arti…...
数据结构:二叉搜索树(排序树)
1.二叉搜索树的定义 二叉搜索树要么是空树,要么是满足以下特性的树 (1)左子树不为空,那么左子树左右节点的值都小于根节点的值 (2)右子树不为空,那么右子树左右节点的值都大于根节点的值 &#…...
【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...
C++(蓝桥杯常考点)
前言:这个是针对于蓝桥杯竞赛常考的C内容,容器这些等下棋期再讲 C 在DEVC中注释和取消注释的方法:ctrl/ ASCII值(常用的): A-Z:65-90 a-z:97-122 0-9:48-57 换行/n:10科学计数法:eg:…...
支付宝 IoT 设备入门宝典(下)设备经营篇
上篇介绍了支付宝 IoT 设备管理,但除了这些基础功能外,商户还可以利用设备进行一些运营动作,让设备更好的帮助自己,本篇就会以设备经营为中心,介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣,可以…...
蓝桥杯 之 填空题-位运算与循环
文章目录 循环握手问题门牌制作-循环小球反弹幸运数艺术与篮球跑步卡片 位运算3个1美丽的2024 位运算 可以关注这个Lowbit(x) 如何判断最低位是否是1? num&1 1就说明num最低位是1 循环 循环 握手问题 握手问题 思路分析: 可以直接计算出来&…...
iOS逆向工程概述与学习路线图
iOS逆向工程概述与学习路线图 欢迎各位加入我的iOS逆向工程专栏!在这个系列的第一篇文章中,我将为大家介绍iOS逆向工程的基本概念、应用场景以及完整的学习路线图,帮助大家建立清晰的学习框架。 什么是iOS逆向工程? 逆向工程&a…...
DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…...
基于 Ingress-Nginx 实现 mTLS 双向认证
目录 背景描述: TLS 和 MTLS 之间的差异 通过自签名证书启用双向 TLS 1. 生成证书 (1) 生成 CA(根证书颁发机构) (2) 生成 CA(根证书颁发机构) (3) 生成客户端证书 2. 在 Kubernetes 中配置 mTLS &#x…...
学到什么记什么(25.3.3)
Upload-labs 今日重新做了一下文件上传漏洞,这里第一题之前采用直接抓包改后缀名.jpg为.php,再写入一句话<?php phpinfo();?>然后放行,得到图片地址(可复制),本来直接访问图片地址即可得到敏感信息…...
魔百盒CM311-1s刷机后体验:安卓9.0固件到底香不香?附5621DS无线实测
魔百盒CM311-1s刷机实战:安卓9.0系统深度评测与无线性能揭秘 当手中的魔百盒CM311-1s遇上安卓9.0系统,这场硬件与软件的碰撞会擦出怎样的火花?作为一款搭载S905L3B芯片的电视盒子,其原生系统往往受限于运营商定制化限制࿰…...
从‘延迟’到‘精准’:聊聊风力发电机液压偏航控制中的那些坑与优化思路
从‘延迟’到‘精准’:风力发电机液压偏航控制的实战优化指南 引言:当风向变化比控制指令更快 在内蒙古某风电场,一台2.5MW机组在春季大风季节出现了令人费解的现象:尽管偏航系统持续运转,发电量却比相邻机组低12%。现…...
多 Harness Control Plane 如何重塑企业云 Agent 架构
Agent 规模化部署的真正瓶颈不是模型,而是 Harness 选择与治理 在生产环境中,工程领导者决定今年要把云 Agent 推到全团队规模:代码迁移、大型特性构建、生产部署、日常运维全线自动化。可一旦真正落地,第一个卡住的永远不是模型能…...
XInputTest:精准测量游戏手柄轮询率与延迟的专业工具
XInputTest:精准测量游戏手柄轮询率与延迟的专业工具 【免费下载链接】XInputTest Xbox 360 Controller (XInput) Polling Rate Checker 项目地址: https://gitcode.com/gh_mirrors/xin/XInputTest 在竞技游戏和模拟飞行等高精度操作场景中,游戏手…...
保姆级教程:用PlatformIO给ESP32刷Marlin固件,搞定WiFi配置和Web界面
从零构建3D打印机无线中枢:ESP32刷写Marlin固件全流程解析 当你的3D打印机突然摆脱数据线的束缚,通过手机就能随时监控打印进度、调整参数时,那种科技带来的愉悦感会瞬间抵消所有配置过程的艰辛。本文将带你用ESP32开发板打造专属无线控制模块…...
终极指南:如何用VS Code和Markdown快速制作专业演示文稿
终极指南:如何用VS Code和Markdown快速制作专业演示文稿 【免费下载链接】marp-vscode Marp for VS Code: Create slide deck written in Marp Markdown on VS Code 项目地址: https://gitcode.com/gh_mirrors/ma/marp-vscode 你是否厌倦了在PPT软件中反复调…...
科梁信息冲刺港股:年营收6亿 利润9303万 桑苏明控制41%股权
雷递网 雷建平 5月20日上海科梁信息科技股份有限公司(简称:“科梁信息”)日前递交招股书,准备在港交所上市。年营收6亿 利润9303万科梁信息成立于2007年,是一家数字能源科技公司,致力于为新型电力系统与高端…...
Gmail现可语音对话式检索邮件,亮相Google IO 2026
谷歌在向Gmail注入AI功能的道路上仍未停步。本周二,在年度开发者大会Google IO 2026上,这家科技巨头宣布对Gmail的"AI收件箱"功能进行升级扩展,正式引入对话式AI交互能力。这意味着用户今后可以直接向Gmail发问,而无需再…...
手把手教你用VAMI 5480界面给vCenter Server 7.0打补丁(附备份确认与CEIP选择避坑)
从零开始:vCenter Server 7.0小版本升级全流程指南 第一次为vCenter Server执行小版本升级,就像给心脏做手术——既不能出错,又必须确保每一步都万无一失。作为VMware虚拟化环境的核心枢纽,vCenter的稳定性直接关系到整个IT基础设…...
别再滥用Promise.all了!聊聊Vue/React项目中用p-limit控制并发请求的实战心得
别再滥用Promise.all了!聊聊Vue/React项目中用p-limit控制并发请求的实战心得 在Vue/React项目中处理批量数据请求时,许多开发者会条件反射地使用Promise.all,认为这是最高效的方案。直到某次线上事故——用户尝试导出500条订单数据时浏览器直…...
