STL--贪心算法
题目描述新年快到了笑笑打算给他的好朋友们发贺年卡而且他已经选好了自己要购买的贺卡的样式。俗话说得好货比三家笑笑来到商店看了各个商铺这种贺卡的价钱。不仅如此笑笑还记住了每个商铺的存货量。已知笑笑打算购买 mm 张贺卡问他最少花多少钱。输入第一行两个整数 mm 和 nn 。其中 mm 表示要购买的贺卡的数量nn 表示商铺的个数。以下 nn 行每行两个整数分别表示该商铺这种贺卡的单价和存货量。输出仅一个数表示笑笑花的最少钱数。样例输入10 4 4 3 6 2 8 10 3 6输出36数据规模0m,n≤10000m,n≤1000每个商铺贺卡单价在 1∼1001∼100 之间数量在 1∼10001∼1000 之间输入保证商铺的总存货量不少于 mm 。这道题是非常经典的贪心算法入门题核心思路就是「优先买单价最便宜的商铺的贺卡把便宜的买光再买下一家稍贵的」贪心Greedy Algorithm是编程里一种非常直观的算法思想核心可以用一句话概括在每一步决策的时候都选择当前局部看来最优的选项期望通过每一步的局部最优最终得到全局的最优解。#includeiostream #includevector #includealgorithm //STL sort头文件必须引入 using namespace std; //自定义结构体存储每个商铺的单价和存货量 struct Shop{ int price; int stock; }; int main(){ int m, n; cin m n; vectorShop shops(n); //用STL的vector存储所有的商铺数据 for(int i 0; i n; i){ cin shops[i].price shops[i].stock; } sort(shops.begin(),shops.end(),[](const Shop a,const Shop b){ return a.price b.price; }) ; int total_cost 0; //记录总花费 int remaining m; //还需购买 for(int i 0; i n; i){ int buy_num min(remaining, shops[i].stock); total_cost buy_num * shops[i].price; remaining - buy_num; if(remaining 0) break; } cout total_cost endl; return 0; }sort(shops.begin(), shops.end(), 自定义比较函数)是STL sort的标准用法前两个参数是排序的起止迭代器第三个参数是你自己定义的排序规则这里用C11的lambda表达式写非常简洁作用就是告诉sort“按price小的排在前面”。// 函数返回值是bool也就是只能返回true或者false // 两个参数a和b就是sort每次拿来比较的两个商铺对象加const 是为了不拷贝、不修改数据你现在可以先理解成固定写法 bool 我判断两个商铺谁在前(Shop a, Shop b) { // 我明明白白告诉sort如果a的单价 b的单价 → 就返回true代表a应该排在b左边前面 return a.price b.price; }你也可以不用lambda单独写一个比较函数效果完全一样bool compare(const Shop a, const Shop b) { return a.price b.price; } // sort调用时写 sort(shops.begin(), shops.end(), compare);具体代码如下#include iostream #include algorithm using namespace std; // 先定义商铺的结构体 struct Shop { int price; // 单价 int stock; // 存货 }; // 就写这个最朴素的比较函数没有任何新语法 bool cmp(Shop a, Shop b) { // 规则单价小的排在前面 return a.price b.price; } int main() { int m, n; cin m n; Shop shops[1005]; for(int i0; in; i) { cin shops[i].price shops[i].stock; } // 把cmp传给sortsort就会按单价从小到大排好所有商铺 sort(shops, shops n, cmp); // 接下来直接贪心买就完事 int totalCost 0; for(int i0; in; i) { if(m 0) break; // 当前店的货够买剩下的所有直接买完结束 if(shops[i].stock m) { totalCost m * shops[i].price; m 0; } else { // 把这家店的货全买空 totalCost shops[i].stock * shops[i].price; m - shops[i].stock; } } cout totalCost endl; return 0; }

相关新闻

附近服务找不到?本地门店如何优化AI搜索推荐?

附近服务找不到?本地门店如何优化AI搜索推荐?

很多经营本地生活服务的商家最近发现一个现象:当用户直接向AI询问“附近哪家咖啡店好”或者“周边哪个家政靠谱”时,自家的门店却总是出现在推荐列表之外。即使门店在传统搜索引擎中排名尚可,但在生成式AI的问答中,似乎成了“隐形…

2026/10/11 6:57:13 阅读更多 →
中介数据频繁流失?房管家ACN私有化部署筑牢数据安全壁垒

中介数据频繁流失?房管家ACN私有化部署筑牢数据安全壁垒

对于房产中介而言,房源、客源、客户跟进记录就是门店的核心资产,更是门店生存发展的生命线。但行业普遍存在一个致命难题:员工离职带走客户、房源资源,核心数据随意外泄,门店多年积累的资产瞬间流失。很多门店做了多年…

2026/10/16 8:28:26 阅读更多 →
CANBridge-Ex 在煤矿防爆变频器中的应用

CANBridge-Ex 在煤矿防爆变频器中的应用

一、案例概述煤矿井下工作面普遍存在瓦斯、煤尘等爆炸性气体环境,对电气设备的防爆安全性提出了极为严苛的要求。防爆变频器作为煤矿综采、掘进、运输等核心设备的动力驱动单元,其通讯接口的本质安全设计直接关系到整套系统的安全运行。CANBridge-Ex 隔离…

2026/10/16 10:13:06 阅读更多 →

最新新闻

主从博弈下综合能源微网需求响应优化调度模型全解析

主从博弈下综合能源微网需求响应优化调度模型全解析

第一次看到“基于主从博弈的综合能源微网需求响应优化调度模型”这个题目,很多人会把它当成一个普通的优化调度问题来读:目标函数、约束条件、求解器一跑,出结果就完事了。但我实际调过这类模型之后发现,真正难的不是数学工具&…

2026/10/18 4:40:33 阅读更多 →
PyTorch Unet图像分割实战:DUT-OMRON数据集端到端训练与推理

PyTorch Unet图像分割实战:DUT-OMRON数据集端到端训练与推理

简介:本资源是一套面向深度学习初学者与图像分割实践者的Unet多尺度分割实战项目,聚焦二值图像分割任务,特别适用于学术研究、课程设计及算法复现场景。资源包含完整的DUT-OMRON数据集(训练集4135对images/masks、测试集1033对&am…

2026/10/18 4:40:33 阅读更多 →
信创监控实战:国产数据库与中间件指标采集及告警体系设计

信创监控实战:国产数据库与中间件指标采集及告警体系设计

1. 信创监控的痛点与整体架构设计1.1 为什么信创环境的监控不能照搬旧方案之前负责的某业务系统做信创替换,数据库从国外商业数据库换成某国产关系型数据库,中间件也换成了国产Web中间件。系统切过去第一天,监控大屏上将近一半的指标直接变成…

2026/10/18 4:40:33 阅读更多 →
推荐系统离线评估指标详解:准确率、召回率、F1与NDCG

推荐系统离线评估指标详解:准确率、召回率、F1与NDCG

做推荐系统,迟早要面对一个问题:我怎么量化推荐质量。业务方问一句“这次模型效果到底提升了没”,如果只丢出一句“感觉差不多”,那接下来的优化根本没法推进。准确率、召回率、F1、NDCG,这四个词就是推荐系统离线评估…

2026/10/18 4:40:33 阅读更多 →
schooldb代码实战:MySQL学生选课系统数据库设计全解析

schooldb代码实战:MySQL学生选课系统数据库设计全解析

搜“schooldb代码”的人,十有八九都是同一类需求:要么是数据库课设不知道从哪下手,要么是公司里突然要接一个校园管理相关的数据层,想找个偏教学向、能直接跑的库来抄作业。这个方向我帮不少人做过参考,也接过不少来问…

2026/10/18 4:40:33 阅读更多 →
学习打卡功能开发实战:从表结构设计到线上踩坑全记录

学习打卡功能开发实战:从表结构设计到线上踩坑全记录

前段时间接了一个学习类App的项目,需求池里躺着一个编号3.10的任务,名字就四个字:学习打卡。当时团队里不少人都觉得,这不就是给用户一个按钮,每天点一下签个到吗?结果真进入开发阶段才发现,这个…

2026/10/18 4:39:33 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →