CDQ分治--用时间降维的美丽算法】的更多相关文章

CDQ分治–用时间降维的美丽算法 CDQ分治,网上的阐述很多,太专业性的文字我就不赘述,这里指谈谈自己的感受 还是%一下CDQ大神的论文 CDQ分治的主要想法就是降维(比如三维问题降维到二维问题),并付出O(logn)" role="presentation">O(logn)O(logn)的代价 前提:支持离线 那么我们思考一下经典二维偏序问题: 给定数列a和b,问(i<j)" role="presentation">(i<…
题目链接:传送门 关于CDQ分治(参考李煜东<算法竞赛进阶指南>): 对于一系列操作,其中的任何一个询问操作,其结果必然等价于:初始值 + 此前所有的修改操作产生的影响. 假设共有 $m$ 次操作,对于任意的满足 $1 \le l \le r \le m$ 的正整数 $l,r$,定义 $solve(l,r)$ 为:对于任意的正整数 $k \in [l,r]$,若第 $k$ 次操作为询问操作,则计算第 $l \sim k-1$ 次操作中的修改操作对第 $k$ 次查询的影响.$solve(l,r)…
感觉cdq分治是一个很有趣的算法 能将很多需要套数据结构的题通过离线来做 目前的一些微小的理解 在一般情况下 就像求三维偏序xyz 就可以先对x排序 然后分治 1 cdq_x(L,M) ; 2 提取出(L,M)中的修改元素 作为修改操作 提取出(M+1,R)中的查询元素 作为查询操作 然后存入数组q 对q按照y排序 这样 在q中 关于y 所有的修改操作 都会在 可能作用到的查询操作前面 似乎可以将这一步 称作"对x维度的剥离" 在对q数组接下来的操作中 不需要考虑x维度 3 cdq_x…
[BZOJ2141]排队(CDQ分治) 题面 题面以及树套树做法见这里 题解 大部分树套树/主席树这类题目都可以用整体二分/CDQ分治来做. 这题考虑一下,在不考虑修改的情况下 贡献是如何产生的? 我们发现是个二位偏序问题(或者说是一个逆序对修改版本) 现在有了一个修改,那么产生贡献的前提额外增加一个:时间. 既然变成了一个三位偏序问题 考虑\(CDQ\)分治 按照时间分治,块内按照\(x\)排序,考虑左侧对右侧的贡献: 维护当前数字(离散后)的一个值域树状数组 因为贡献有当前点作为左端点和右端…
HDU5126 stars Problem Description John loves to see the sky. A day has Q times. Each time John will find a new star in the sky, or he wants to know how many stars between (x1,y1,z1) and (x2,y2,z2). Input The first line contains a single integer T(1≤T…
Color it Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Problem Description Do you like painting? Little D doesn't like painting, especially messy color paintings. Now Little B is painting. To prevent him from…
题面 Time Limit: 50 Sec  Memory Limit: 128 MB Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数字加上A 2 x1 y1 x2 y2 1<=x1<= x2<=N 1<=y1<= y2<=N 输出x1 y1 x2 y2这个矩形内的数字和 3 无 终止程序 Input 输…
游荡的孤高灵魂不需要羁绊之处. 洛谷题单 点分治 前置芝士 树的重心 树分治 例题略解 P3806 [模板]点分治1 板子题,先暴力找到整棵树的重心,然后先求出重心到各点的距离,进而算出他所在树的各个节点的距离,在对应的ans数组加一;然后再接着扫子节点,并把儿子节点子树的贡献减去,最后回答询问. 然后我们愉快的\(TLE60pts\),题目上也有说明,这种做法使用于大部分不过本体比较卡时间,储存然后离线剪枝就好了. 这里给出\(60pts\)的\(code\) P2634 [国家集训队]聪聪可…
cdq是何许人也?请参看这篇:https://wenku.baidu.com/view/3b913556fd0a79563d1e7245.html. 在这篇论文中,cdq提出了对修改/询问型问题(Modify-Query问题)的分治做法,下面来具体讨论一下: 我们将修改/询问看作在时间轴上的一系列元素,把修改和询问统称为“操作”,并用记号\([l,r]\)表示第\(l\)个操作到第\(r\)个操作的序列. 在时间轴上进行的操作,众所周知有这样的特性:时间早的会影响时间晚的,而反过来不会,这就是c…
题目: Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当且仅当Sa>=Sb,Ca>=Cb,Ma>=Mb.显然,两朵花可能有同样的属性.需要统计出评出每个等级的花的数量. Input 第一行为N,K (1 <= N <= 100,000, 1 <= K <= 200,000 ), 分别表示花的数量和最大属性值. 以下…