ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

整体二分

2022-06-18 18:35:35  阅读:136  来源: 互联网

标签:二分 对于 值域 线段 整体 quad 操作


\(\quad\)这个就是对于所有询问一起二分答案。一般的格式是 solve(值域,操作范围) ,表示在这个操作范围内,所有的操作都是涉及这个值域的(答案在这个值域,加减在这个值域),并且按照顺序排列。那么求解的大概的过程就是,对于当前值域二分一个答案,扫一遍,对于涉及的数值比这个二分的值小的操作就放在一个队列中,否则放在另一个队列中,最后重新对操作范围赋值,递归求解。

\(\quad\)对于值域二分时可以考虑二分出现过的数字,因为答案只可能出现这些数字,这样应该可以减少常数。

Luogu P2617 Dynamic Rankings

\(\quad\)这个就是一道整体二分的模板题,扫一遍的时候,对于涉及到左边值域的加减操作,就在树状数组中操作一下,对于查询操作,就可以直接在树状数组中查询,看左边的值域是否满足要求,然后看情况将其放入队列中。

\(\quad\)复杂度显然是产生在树状数组中,也就是 \(O(mlogV)\)

Luogu P4602 [CTSC2018]混合果汁

\(\quad\)乍一看没什么思路,考虑如果只有一个人,那么二分一下,然后按照价格贪心的取即可。注意到,可以二分,那么我们考虑整体二分。我们需要维护一个以价格为底的线段树,每一个节点保存最大体积和相应的价格,因为我们贪心的时候一定是从小往大的贪,所以一定可以用线段树二分出是否满足要求。那么对于每一个区间,二分一个美味值,然后将满足条件的美味值的价格插进线段树中,对于每一个区间内的人,用线段树判断一下即可。常数似乎是非常的大,不过范围只有 1e5 ,可以过。

标签:二分,对于,值域,线段,整体,quad,操作
来源: https://www.cnblogs.com/kzos/p/16388943.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有