摘要:思路 :按照操作的时间进行分治,这样转化成了 时间t ,x坐标,y坐标 经典的三维偏序。 最初时间就是递增顺序,无需排序直接进行第二维的分治,类似归并排序处理x坐标,在保证 x有序的情况下进行更新y坐标的树状数组。求一个 (x1,y1) - (x2,y2)矩形内点的个数,简单容斥一下 求[ (1,1
阅读全文
随笔分类 - CDQ分治
摘要:思路 :按照操作的时间进行分治,这样转化成了 时间t ,x坐标,y坐标 经典的三维偏序。 最初时间就是递增顺序,无需排序直接进行第二维的分治,类似归并排序处理x坐标,在保证 x有序的情况下进行更新y坐标的树状数组。求一个 (x1,y1) - (x2,y2)矩形内点的个数,简单容斥一下 求[ (1,1
阅读全文
摘要:题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数 思路 :动态说的很到位。hiahia ... 最初一直没想明白为什么 大佬的cdq 中统计了两次。 先定义 给出的删除的点的 t 值依次是N,N-1,N-2...(越先删除的视为越后插入的) 注意不在询问范围内的点的t值可以任意设置,
阅读全文
摘要:HDU - 1541 思路:二维偏序,一维排序,一维树状数组查询即可。 #include<bits/stdc++.h> using namespace std; #define maxn 33333 int ans[maxn],n,sum[maxn]; int lowbit(int x) { ret
阅读全文
摘要:HYSBZ - 4991 题意: 第一列 1-n的排列 ,第二列 1-n的排列。 相同数字连边 ,问 有多少组 数字 是有交点的并且 绝对值之差>K思路:处理一下 1-n 在第一列的位置,1-n在第二列的位置。按照第一列的位置从小到大排序,然后 进行cdq分治,因为现在第一列已经是递增序列了,如果在
阅读全文
摘要:P3810 【模板】三维偏序(陌上花开) 思路 :按照 1维排序 二维 分治三维树状数组维护
阅读全文
|