ABC 389(EF)

news/2025/1/20 20:43:57/文章来源:https://www.cnblogs.com/jjjxs/p/18682249

E

一道感觉非常巧妙的二分。

可以将每种商品分开来看:第\(k\)次买商品\(P_i\)时,价格为\((2k-1)P_i\)

这样,就将每种商品拆分为了多个实体的商品,并有自己的价格。想最大化购买物品的总数,一定是每次购买时贪心选择当前所有物品中最便宜的那个。

但模拟一定会\(TLE\),可以枚举购买过程中买的最贵的一件商品,设其价格为\(x\)

这样的话,价格\(<=x\)的所有商品均一定会被购买,而此时可能会剩下一些钱,可以去购买价格\(>x\)的物品。显然\(x\)是具有单调性的,故每次可以二分\(x\),看将所有\(<=x\)的商品购买完后,是否可以购买完价格为\(x+1\)的商品。

若能买完,则真实值一定比\(x\)要大(至少是\(x+1\)),扩大左边界;若\(<=x\)的物品不能全部买完,则真实值一定比\(x\)要小,缩小右边界;否则真实值就是\(x\)

注意二分边界要足够大,因为可以购买的最大价格不止是原商品的最大价格,容易遗忘!

code

F

考虑对每一个\(X\)计算答案。初始时没有经过任何区间,答案为\([1,2,3,...,5e5]\)

枚举要经历的区间,由于每经过一个区间\([l,r]\),值位于\([l,r]\)内的\(X\)会加\(1\),则在经历任意一个区间后,可以保证答案序列的非递减性。

因为对于任意\(X_i<X_j\),在\(X_i\)不断递增的过程中,由于每一次只会加\(1\),故递增时不会突然发生\(X_i>X_j\)的情况,最多只会等于\(X_j\),那么以后二者的变化就会永远相同,不会发生突变的情况。

所以每经历一场比赛,会增加的\(X\)在答案序列中一定也会呈现为一个区间的形式,这样就相当于区间加,可以用线段树二分来找要加的区间的左右端点,最后回答每个询问即可。复杂度\(O(nlog^{2}X + QlogX)\)

code

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

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

相关文章

多端响应式

重要!响应式开发 目录重要!响应式开发是什么?怎么实现?媒体媒体查询断点是什么适配方案栅格布局响应式栅格系统实例 是什么? 多终端显示不同,更好看 PC,ipad,手机适配 怎么实现? 媒体查询,断点: 视口宽不同,布局不同 移动端??? 320-480端口 rem 不考虑大尺寸,更…

公共图床-OIER试炼场

公共图床-OIER试炼场 如何使用? 1. 使用浏览器直接访问 https://api-cdn.u1128333.nyat.app:35910/2. 通过插件访问 插件下载点我 MIT License, ©2025 Chan. 在浏览器扩展中添加即可使用。

32. 样式表

一、样式表为了美化窗口或控件的外观,可以通过窗口或控件的调色板给窗口或控件按照角色和分组设置颜色,还可以对窗口或控件的每个部分进行更细致的控制,这涉及窗口或控件的样式表(Qt style sheets, QSS),它是从 HTML 的层叠样式表(cascading style sheets, CSS)演化而来…

TIA SCL编程清除字符串中所有的空格

今天做一个小的练习,这是2025年第一个记录的学习笔记。 在IA新建一个FC,名字叫做TrimSpace,建立以下内部变量:写一段SCL代码: #len := LEN(#str_in);#str_trim_out := ;FOR #i := 1 TO #len DO   IF MID(IN := #str_in, L := 1, P := #i) <> THEN   …

计算几何相关

打算慢慢记一下扫描线,辛普森法和凸包。扫描线 扫描线直接照搬了...这篇主要是给之后的积分和凸包之类留的。 就是用线段树解决计算几何问题。 板梯 如何处理平面内一群矩形的面积交? 考虑用面积的朴素定义,\(S=ab\),相当于一堆面积合到一起就是 \(b\) 个可以不同的 \(a\) …

树状数组(学习笔记)

例题一:P3374 【模板】树状数组 1 例题二:P3368 【模板】树状数组 2 作用:特征: 一个多用于区间修改,和单点查询。或区间查询单点修改的数据结构,其代码量较少,比较好写。 区别: 它与线段树的功能差不多,但线段树的可拓展性更强。也就是说:树状数组能做的,线段树都能…

Centos根目录扩容

CentOS磁盘在根目录下扩容(无卷组情况下)查看磁盘分区情况,sda3挂载在根目录下,新扩容增加的sda4挂在在/data下现在想把sda4同样挂载在根目录下解决方法:删除sda3,再重建sda3(注意:删除后不要退出,紧接着重建,注意重建后的起始位置) 删除sda3然后重建输入下面那个命…

U455764 The Rotation Game

U455764 The Rotation Game 题目理解 本题要求移动\(A-H\)中的一列或一行,使其整个一行和一列的数字移动,使最后的中间8个的数字相同。求最少需要移动的步数和它的操纵顺序思路 1.本题可以很显然的想到用 \(BFS\) 来枚举执行不同字母操作后结果,但每 \(BFS\) 一次就会增加八…

BUU SQL COURSE 2

BUU SQL COURSE 2 BUU SQL COURSE 2 和前面那题差不多,但是注一下找到的登录成功但是显示 fault。 注一下别的看一下,在另一个数据库里找到了 flag。本文来自博客园,作者:Maplisky,转载请注明原文链接:https://www.cnblogs.com/lbh2021/p/18682313