洛谷 P3545

news/2025/10/4 8:40:55/文章来源:https://www.cnblogs.com/Chronomia/p/19124060

洛谷 P3545

https://www.luogu.com.cn/problem/P3545<—原题指路

很典的一道带反悔贪心

题意简述

一共 \(n\) 天。
\(i\) 天上午进货 \(ai\) 件商品,中午有一个顾客需要 \(bi\) 件商品,可以满足他或无视他。
要满足顾客则必须要有足够的库存。问最多能满足多少位顾客,以及能满足的是哪些顾客。

解题思路

(带反悔贪心)

开一个堆存储顾客信息,其中购货量多的顾客在上。
开一个数组记录顾客是否被满足。
用ans记录满足了的顾客的数量。
遍历 \(1-n\) 的每一天。

接下来分两种情况:

  1. 如果当天进货后库存足够,则直接满足顾客的需求,记录满足了该顾客,并且把他的信息存入堆中
  2. 如果当天进货后库存不足,则弹出堆顶元素 \(lins\) ,并且比较当前顾客与 \(lins\) 顾客的信息
    • 如果lins的购货量多于当前顾客,则同样是多满足了一个顾客,满足当前顾客时剩余的存货量要多于满足lins顾客时剩余的存货量。则此时满足当前顾客比满足 \(lins\) 顾客更优。因此反悔满足 \(lins\) 顾客的决定——将 \(lins\) 顾客的信息从堆中删除(删除堆顶元素),并且将 \(lins\) 顾客标记为没有满足;将当前顾客标记为满足,并将他的信息存入堆中。
    • 反之,如果 \(lins\) 的购货量少于当前顾客,那么维持原状比反悔并满足当前顾客更优,则直接无视当前顾客即可

最后输出ans;并且遍历标记数组,若顾客被满足则输出其编号。

代码展示

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,hw,ans;
bool vis[250010];
struct node{int a,b,bh;
}mm[250010];
struct cmp{bool operator() (node x,node y){return x.b<y.b;}
};
priority_queue<node,vector<node>,cmp> q;
signed main(){scanf("%lld",&n);for(int i=1;i<=n;i++) scanf("%lld",&mm[i].a);for(int i=1;i<=n;i++) scanf("%lld",&mm[i].b);for(int i=1;i<=n;i++) mm[i].bh=i;	//输入与预处理for(int i=1;i<=n;i++){hw+=mm[i].a;if(hw<mm[i].b){  //若无法直接满足当前的第i位顾客if(q.empty()) continue;  //如果堆中没有元素,则无可反悔,跳出当前循环node lins=q.top();  //取出堆顶元素存入linsif(lins.b<=mm[i].b) continue;  //若原状比反悔更优,跳出当前循环q.pop(); vis[lins.bh]=false;   //否则反悔,不满足lins顾客,并将他的购买量存入当前库存hw+=lins.b; ans--;}hw-=mm[i].b; ans++;  //满足当前顾客vis[i]=true;q.push(mm[i]);}printf("%lld\n",ans); for(int i=1;i<=n;i++)if(vis[i])printf("%lld ",i);  //输出答案return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建材城电商网站建设专业模板网站制作哪家好

这篇文章将介绍将C# 7类库升级到C# 8&#xff08;支持可空引用类型&#xff09;的一个案例。本案例中使用的项目Tortuga Anchor由一组MVVM风格的基类、反射代码和各种实用程序函数组成。之所以选择这个项目&#xff0c;是因为它很小&#xff0c;并且同时包含了惯用和不常用的C#…

国外前端 网站wordpress怎么搭建成论坛

文章目录 前言一、物业缴费的数字化革新二、在线缴费功能的实现三、智能化缴费管理的优势四、面临的挑战与未来展望五、结语 前言 随着科技的不断进步&#xff0c;二维码门楼牌管理应用平台已成为物业管理的新趋势。在这样一个平台上&#xff0c;物业缴费的数字化革新不仅提高…

网站建设确认表国家认可的赚钱游戏

目录 计算机视觉任务 1.K近邻算法 2.得分函数 3.损失函数的作用 4.向前传播整体流程 5.反向传播计算方法 计算机视觉任务 机器学习的流程&#xff1a; 数据获取 特征工程 建立模型 评估与应用 计算机视觉&#xff1a; 图像表示&#xff1a;计算机眼中的图像&#…

题解:AT_wtf22_day2_b The Greatest Two

神仙题。官方题解搬运工,尽量加上自己的理解使得这篇题解更好理解。 题意: 首先会发现,每个数只要在一个区间 \([l_v,r_v]\) 中那么一定有解,并且一定是 \(v\) 更大的会套住 \(v\) 更小的形成一个树形结构。有点反…

深入解析:docker 安装 xxl-job 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

威胁狩猎实战:终端攻击行为分析与检测

本文通过Try Hack Me平台的威胁狩猎实验,详细解析了在终端攻击目标阶段如何检测恶意活动,包括键盘记录、ICMP数据外泄和系统破坏等技术的实战狩猎过程,帮助安全分析师提升威胁检测能力。Try Hack Me — 威胁狩猎:终…

2024年全国大学生信息安全竞赛安徽省赛网络高效的系统建设与运维赛项-网络构建真题

2024年全国大学生信息安全竞赛安徽省赛网络高效的系统建设与运维赛项-网络构建真题2025-10-04 08:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; over…

吉首网站制作wordpress搜索所有类

文章目录一、部门经理流转1. 登录dept账号2. 在待办任务中&#xff0c;签收任务3. 在待办任务中&#xff0c;办理任务3.1. 响应码5003.2. 请求的url3.3. 页面传递的参数3.4. 控制台报错信息提取3.5. 在获取代办列表FlowTaskService的104行3.6. 在获取代办列表FlowTaskService的…

西部数码创建子网站中国建设银行黑龙江支行官方网站

AcWing 785. 快速排序 文章目录 题目描述CGo模板 题目描述 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&#xff08;所有…

网站的开发是使用什么技术网站域名怎么做

最常见的算法——梯度下降 当一个模型没有显示解的时候&#xff0c;该怎么办呢&#xff1f; 首先挑选一个参数的随机初始值&#xff0c;可以随便在什么地方都没关系&#xff0c;然后记为 w 0 \pmb{w_{0}} w0​在接下来的时刻里面&#xff0c;我们不断的去更新 w 0 \pmb{w_{0}…

详细介绍:BPEL:企业流程自动化的幕后指挥家

详细介绍:BPEL:企业流程自动化的幕后指挥家2025-10-04 08:16 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

江苏网站建站系统平台网站建设shzanen

GetKeyState、GetAsyncKeyState、GetKeyboardState函数的差别&#xff1a; 1、BOOL GetKeyboardState( PBYTE lpKeyState );获得全部的256个键&#xff08;键盘按键、鼠标按键等等&#xff09;的状态&#xff0c;lpKeyState是指向一个256bit的数组。存放全部键的状态。 2、SHOR…

51网站哪里去了哪个网站可以悬赏做图

[css] 如何使用css给一个正方形添加一条对角斜线&#xff1f; background:linear-gradient(45deg,transparent 49.5%,deeppink 49.5%,deeppink 50.5%,transparent 50.5%);个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。…

实用指南:基于Hadoop+Spark的人体体能数据分析与可视化系统开源实现

实用指南:基于Hadoop+Spark的人体体能数据分析与可视化系统开源实现pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

番禺区网站设计wordpress过去指定分类文章

转变过程 如图&#xff0c;假设将double类型能精确表示的数字落在数轴上&#xff0c;分别是double1、double2、double3。 这个时候&#xff0c;我们有十进制数字a&#xff0c;想要转变成double表示&#xff0c;这个时候得到的是double2&#xff0c;因为double2是距离这个十进制…

基于Hadoop的肾脏疾病风险分析系统架构设计精髓 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

乐之网站制作电影打卡WordPress模板

MFC 中&#xff0c; ListBox 与 ComboBox 中的项在设置了高度的情况下如何实现文本的水平居中与垂直居中&#xff1f;&#xff1f;&#xff1f;ListBox 与 ComboBox 中的数据均为动态添加文本内容含有数字、英文、中文void CMyComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemS…

实用指南:开源 C# 快速开发(十四)进程--内存映射

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

rqlite 集成sqlite-vec 简单说明

rqlite 集成sqlite-vec 简单说明rqlite 是一个基于raft 的实现的分布式sqlite,sqlite-vec 是可以直接集成rqlite的,核心是sqlite 的插件机制,以下是一个简单试用 环境准备 可以使用docker 或者直接下载二进制包运行…

英语_阅读_Water Sliding_待读

One, two, three... Goooooooh! 一、二、三……出发咯! Slide down the slope. 沿着斜坡滑下去。 Hit the pool with a splash. “扑通”一声掉进泳池。 Water-slides might seem simple. 水滑梯看起来可能很简单。 B…