高维偏序问题降维的有力武器——cdq分治

本文介绍了CDQ分治方法在处理高维偏序问题中的应用,通过实例详细阐述了如何从二维偏序计数到三维偏序计数的处理过程。CDQ分治的核心思想是通过排序降低问题的维度,以此解决多维偏序问题,如计算逆序对。文章还探讨了CDQ分治的极限和拓展问题,包括偏序+全序和求和+全序的场景,展示其在不同应用场景中的价值。
摘要由CSDN通过智能技术生成

问题引入

陌上花开1

若干个元素有三个属性 a , b , c a,b,c a,b,c,问多少对数对 ( i , j ) (i,j) i,j满足 a i ≤ a j , b i ≤ b j , c i ≤ c j a_i\leq a_j , b_i\leq b_j , c_i\leq c_j aiaj,bibj,cicj

分析

如此类问题可以视为一个多维偏序问题,偏序即满足自反性,反对称性,传递性。画成拓扑图则可被视为一张DAG。

考虑这个问题的简单版本,如果只有一个属性,可以容易得到;如果有两个属性,常见的解决方案是对其中一维排序后,树状数组维护前缀,按照某一位以每个元素log的复杂度顺序处理。

在维度更高的情况下,cdq分治是简化问题的一个有效手段。

cdq分治的核心思想即以一个log为代价,降低此类多维偏序一个维度。

预备知识

偏序和全序

偏序即满足:自反性,反对称性,传递性的二元关系。
全序即满足:完全性,反对称性,传递性的二元关系。
两者唯一的区别是第一个性质,但是不难发现,自反性即 ∀ x    s . t .    x R x \forall x\ \ s.t. \ \ xRx x  s.t.  xRx
完全性即 ∀ x , y    s . t .    x R y \forall x,y\ \ s.t. \ \ xRy x,y  s.t.  xRy
即偏序只要自己和自己可比即可,全序则是集合内任意两个元素可比。

像我们处理了如例题陌上花开1的多属性比较关系,往往是偏序的,因为可能出现 a i > b j , b i < b j a_i>b_j,b_i<b_j ai>bj,bi<bj的情况,两者不可比。而自然数集上的大小关系往往可以被视为全序关系,因为任意两个自然数都可比。

引申一点,在全序关系上我们引入良序的定义:若一个全序集上任意一个非空子集S都有最小元,则称其为良序。

逆序对

求逆序对个数事实上可以被视为一个二位偏序的统计问题。对于序列A上每一个元素 a i a_i ai都有两个属性,位置 i i i</

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值