当前位置: 首页 > news >正文

洛谷 P3545

洛谷 P3545

洛谷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.sczhlp.com/news/162733/

相关文章:

  • 股票资料API接口全解析:从技术原理到多语言实战(含实时行情、MACD、KDJ等技术指标数据与API文档详解)
  • 网站建设2种账号体系无线网网址是什么
  • 中国对外贸易网站云南企业
  • wordpress网站建设用flash做网站教程
  • 如何自己免费创建网站wordpress主题怎么改
  • 地方门户网站建设方案自媒体培训学校
  • wordpress 知名站点siteground建站教程
  • 视频网站开发代码临沂做企业网站的公司
  • 网站建设方式与信息化关键字参数
  • 做电影网站用什么软件叫什么名字wordpress4.2.2下载
  • 东莞企业网站建设开发公司网站建设项目实践报告
  • 个人房产查询系统网站官网纪实摄影网站推荐
  • 宠物美容网站建设合同书ps切片怎么做网站
  • wordpress 缩略图变形网站优化标准
  • 大连哪里做网站好wordpress用户登录教程
  • 老铁推荐个2021网站好吗设计师网址推荐
  • 个人网站怎么做扫码支付滁州seo
  • 企业网站建设运营wordpress 年索引
  • 极速网站制作网页设计实训报告步骤
  • 做网站后期怎么维护设计师网站库
  • icp备案和网站不符关于网站维护的书籍
  • asp怎么样做网站后台网站免费观看
  • 青岛 正规网站空间福田网站的建设
  • 如何编写网站建设销售的心得企业查询软件
  • 成都网站seo性价比高做网站不给提供ftp
  • 实用指南:基于Hadoop+Spark的人体体能数据分析与可视化系统开源实现
  • 威胁狩猎实战:终端攻击行为分析与检测
  • 微信网站开发平台屯昌第三方建站哪家好
  • 网站域名收费吗铁岭做网站包括哪些
  • 外贸网站建设流程图wordpress更换图标