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

三维偏序整体二分?

基于整体二分的CDQ分治实现?

众所周知的是三维偏序可以使用整体二分解决,但是今天我研究了一下,发现这个整体二分并不是一般意义下的整体二分,而是CDQ分治的一种类似整体二分的实现。

一般而言,整体二分指的是平行二分答案,这里以区间第 \(k\) 小举例。

你的 \(solve(ql,qr,l,r)\) 指的是 \(ql,qr\) 的询问的答案属于 \(l,r\),并且二分答案,使用 BIT 维护。

但是在三维偏序(CDQ分治)中,你的整体二分二分的是一个阈值,小于的对大于的贡献,你的操作仅仅是将操作分组,而不是二分答案,所以三维偏序根本没有整体二分的写法,只是长得像整体二分的CDQ分治。

void solve(int ql,int qr,int l,int r){if(ql>qr)return;int mid=l+r>>1,cnt1=0,cnt2=0;for(int i=ql;i<=qr;i++){if(q[i].tp==1){if(q[i].y<=mid){q1[++cnt1]=q[i];add(q[i].z,1);}else q2[++cnt2]=q[i];}else{if(q[i].y<mid)q1[++cnt1]=q[i];else{q2[++cnt2]=q[i];ans[q[i].id]+=ask(q[i].z);}}}for(int i=1;i<=cnt1;i++)if(q1[i].tp==1)add(q1[i].z,-1);for(int i=1;i<=cnt1;i++)q[ql+i-1]=q1[i];for(int i=1;i<=cnt2;i++)q[ql+cnt1+i-1]=q2[i];if(l==r)return;solve(ql,ql+cnt1-1,l,mid);solve(ql+cnt1,qr,mid+1,r);
}//第一关键字x,第二关键字tp,tp=1插入,tp=2查询

我们根本没有在二分答案!而是二分一个阈值来计算答案,这一点和CDQ本质相同。

http://www.jsqmd.com/news/43930/

相关文章:

  • 做题随笔:P3403
  • 2025.11.18
  • 《从纪律委员到AI元人文开放者》
  • MEMS与CMOS的3D集成技术研究进展 - 指南
  • CSS学习笔记(六):CSS预处理器 - 实践
  • 「Solution」AGC008F Black Radius
  • linux c web
  • 2025 年 钢丝网/钢骨架 塑料复合管厂家权威推荐榜/哪家好/有实力/可靠的/排名企业-江苏狼博管道制造有限公司
  • CSS实现修改CheckBox样式
  • 人工智能之编程进阶 Python高级:第二章 面向对象
  • 2025年11月百元吸奶器,静音吸奶器,便携吸奶器品牌测评排名,高性价比选购指南!
  • Q:R2R(Row-to-Row)映射 XML 是数据同步“源表字段→目标表字段” 的转换规则基础教程。
  • 2025年11月免手扶吸奶器,穿戴式吸奶器,百元吸奶器品牌测评排名,清洁便捷优选!
  • 【Azure Developer】解决在中国区 Microsoft Graph 命令Get-MgUserAuthenticationPhoneMethod 不可用的问题
  • 基于Redis的滑动窗口限流-Golang实现
  • 查看laya已经加载的资源
  • ESP32 + LVGL 开发笔记(一):点亮屏幕
  • 聊聊deepseek对latex的辅助
  • 【LVGL】图片部件
  • linux c makefile
  • 基于自适应遗传算法风光场景生成的电动汽车并网优化调度【IEEE33节点】(Matlab代码建立)
  • 10大 spring源码设计模式 (图解+秒懂+史上最全)
  • 实用指南:《中国电力产业数字化》深度解析与前沿展望(下)——中国电力数字化转型路线图:SPARK 融合平台的设计与落地方案
  • High Frequency Active Auroral Research Program(HAARP)部分摘取
  • CF813E Army Creation
  • Mac 怎么安装 PyCharm 2020.1.dmg?超简单教程(附安装包)
  • TypeScript-安装安装
  • C# 蓝牙远程控制应用:从零达成移动设备与硬件的无线交互
  • 铭记旧友
  • AI热潮下的冷思考:从估值泡沫到就业现实