首页 > 其他分享 >整体二分总结

整体二分总结

时间:2023-05-11 20:56:38浏览次数:64  
标签:二分 总结 题意 矩阵 mid 整体 区间 查询

整体二分总结

整体二分,就是一种高效离线处理可二分答案的询问的方法,可以代替例如树套树这种高级数据结构。

例题:

1.P1527 [国家集训队]矩阵乘法

题意:多次询问,求子矩阵第\(k\)小数。

思路:先考虑如果只有一个询问,可以二分答案,把矩阵中小于等于\(mid\)的数赋1,大于的赋0,那么如果子矩阵之和大于等于\(k\),那么说明答案不小于\(mid\),反之亦然,这样就可以继续递归下去。同样的,处理很多询问的时候,用二位树状数组维护子矩阵和,把当前子矩阵和大于等于\(k\)的询问传到左区间处理,剩下的传到右区间处理就可以了。

2.P3332 [ZJOI2013]K大数查询

题意:有\(n\)个可重集,有两种操作,一种是把\(x\)插入\(l\)到\(r\)的所有可重集中,一种是查询\(l\)到\(r\)的所有可重集里第\(k\)大的数。

思路:先考虑如果只有一个询问,可以二分答案,把所有\(x>mid\)的插入操作看成给\([l,r]\)区间加1,查询看成求\([l,r]\)的区间和,如果区间和大于等于\(k\)就说明答案在\([mid+1,r]\)中。一般的情况也可以类似处理。

3.P3527 [POI2011]MET-Meteors

题意:有一个环,每个时刻会有一段区间加\(a_i\),每个点属于一个集合,对于每个集合,求这个集合包含的所有点的和第一次不小于\(lim_i\)的时刻。

思路:先考虑如果只有一个询问,可以二分答案,如果\([1,mid]\)时刻操作玩答案大于\(lim_i\),就说明答案在\([1,mid]\)中,对于一般的情况也是如此。

4.P7424 [THUPC2017] 天天爱射击

题意:有\(n\)个区间和\(m\)个操作,每个操作会把所有覆盖了\(x\)的区间的权值+1,每个区间有一个参数\(lim\),求出每个区间的权值第一次到达\(lim\)的时刻。

思路:发现题意就是单点加,和查询一个区间和第一次到达\(k\)的时刻,于是考虑整体二分,用树状数组实现单点加和区间查询即可。

5.P7560 [JOISC 2021 Day1] フードコート

题意:有\(n\)个序列,标号从\(1\)到\(n\),有3种操作,一是给区间\([l,r]\)内的每个数列后面加入\(x\)个数\(k\),二是把\([l,r]\)内每个数列的前\(k\)个数删除,三是查询第\(x\)个数列的第\(k\)个数。

思路:发现求出每个查询对应的\(k\)是不算第二种操作时的第几个数,就可以直接用静态区间第\(k\)小的思路求解。于是问题转化为了怎么求是第几个数。可以很简单的转化为:总共来过的人数-当前还剩的人数+\(k\),而求出当前还剩的人数可以用线段树维护(区间加,区间取\(max\)),于是就做完了。

标签:二分,总结,题意,矩阵,mid,整体,区间,查询
From: https://www.cnblogs.com/Xttttr/p/17392201.html

相关文章

  • 每日总结 5.11
    <!doctypehtml><html><head><metacharset="UTF-8"><scripttype='text/javascript'>if(document.createElement("input").webkitSpeech===undefined){ale......
  • 5.11总结
    DropTABLEIFEXISTStb_order;DropTABLEIFEXISTStb_goods;--订单表--表实现多对多--实现方式:建立第三方中间表,中间表至少包含两个外键,分别关联两方主键CREATETABLEtb_order(idINTprimarykeyauto_increment,paymentDOUBLE(10,2),payment_typeTINYINT,sta......
  • PE学习——PE文件整体结构解析,写得很精致,可以对照案例实践
    PE文件结构: PE加载到内存后的映射: 我们本章节主要看上述细节。本文最核心的图就是PE在做image内存展开的样子: PE文件整体结构解析之前我们已经按照PE文件的整体结构对实际的PE文件进行了大致上的了解了,现在我们需要来看看每个结构的意义和作用。DOS头在之前,我们......
  • stm32 boot0硬件接法导致的概率性启动失败问题总结和反思
    概要 问题概要,板子在稳压电源上工作很好,可一旦接了电池,stm32就会出现概率性的无法启动。加上项目比较急,这个问题阻塞一直无法量产。真是非常的要命啊。 思路分析 既然是不同的电源会导致这个问题,第一步就是分析电源的毛刺,通过示波器查看,发现稳压电源的电压是逐渐上升的,而电......
  • 总结:Qt读写ini配置文件(QSettings)
    声明:资料整理自网络资源,未能全部注明引用来源,如有侵权请联系。一、ini文件介绍.ini文件是InitializationFile的缩写,即初始化文件。INI文件被用来对操作系统或特定程序初始化或进行参数设置,以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现......
  • 官网使用conda&pip安装PyTorch命令总结(包含各版本)
    原网页https://pytorch.org/get-started/previous-versions/因为有时访问该网站比较慢,所以本博客记录该网页内容InstallingpreviousversionsofPyTorchWe’dpreferyouinstallthelatestversion,butoldbinariesandinstallationinstructionsareprovidedbelow......
  • 二分查找和二分答案模板
    1、二分查找关于二分查找主要有三种模板模板1结束条件为l+1==r查找最后一个<=x数的下标(最大化查找,可行区在左侧)intfind(intx){ intl=0,r=n+1;//开区间,数据存储下标为1~nwhile(l+1<r){ intmid=l+r>>1; if(a[mid]<=x)......
  • 总结:C++引用(Reference)
    声明:资料整理自网络资源,未能全部注明引用来源,如有侵权请联系。一、基本概念引用(Reference)是C++相对于C语言的又一个扩充。引用变量是一个别名,即某个已存在变量的另一个名字。声明方法:类型标识符&引用名=目标变量名;inta;//定义变量aint&b=a;//定义引用b,a和b表......
  • 2023.5.10三天学习总结
    一.三天学习情况1.vp了一场河南省赛2.补完了一下上把cf的E以及校赛的题3.学习了一下启发式合并二.学习情况截图 三.题解(158条消息)2023河南省赛vp题解_scanner___yw的博客-CSDN博客四.总结1.这两天刷了两个模拟题,发现代码能力确实得到了......
  • 今日总结
    总结--进度up中代码时间(包括上课):大概5h代码量(行):300行博客数量(篇):4篇了解到的相关知识点:1、还得是实践出真知,学到了不少有关vue的使用方法2、web报告的书写3、选修课作业的完成......