CDQ分治
sunyutian1998
这个作者很懒,什么都没留下…
展开
-
Magnificent Tree - 牛客网
https://www.nowcoder.com/acm/contest/106/H分治就是讲大问题划分成许多小问题 也就是把1到num这些操作序列 划分成许多小序列 对每个[l,r]的小序列 考虑l,m]这个小序列对[m+1,r]这个序列的影响 在这里即是看左子序列的修改会对右子序列造成什么影响对每个子问题 右区间的查询序要关心的是左区间当中在自己坐标范围内的修改 以x或y两者中的一个建...原创 2018-07-26 08:43:18 · 291 阅读 · 0 评论 -
最近等对 51Nod - 1571
https://www.51nod.com/Challenge/Problem.html#!#problemId=1571妈的垃圾51nod 总是卡输入输出把所有线段按左端点排序 作为第一维 右端点为第二维 cdq分治 #include <bits/stdc++.h>using namespace std;typedef long long ll;const l...原创 2018-12-09 20:47:18 · 189 阅读 · 0 评论 -
Little Artem and Time Machine CodeForces - 669E
http://codeforces.com/problemset/problem/669/E动态主席树模板题CDQ分治也可以做 转换为三位偏序 初始给定顺序为第一维 t值为第二维 x值为第三维 代码略#include <bits/stdc++.h>using namespace std;struct node1{ int tp; int t; ...原创 2018-09-11 11:41:50 · 204 阅读 · 0 评论 -
Longest Common Subsequence 牛客网多校
https://www.nowcoder.com/acm/contest/147/G首先要了解LCS和LIS可以相互转换题目保证前三个串中每个数最多出现两次 所以拿四串中数的下标和前三个串中的所有相同数的下标组成四维偏序 然后CDQ求解但是要注意的是 用CDQ求LIS时和普通CDQ不太一样 要先处理左区间内部 再处理左区间对右区间的影响 最后处理右区间内部比如 1 2 3 4这个例...原创 2018-08-31 17:04:34 · 343 阅读 · 0 评论 -
Goodbye Souvenir CodeForces - 849E
http://codeforces.com/problemset/problem/849/E两种操作 一种是把p位置的颜色换为x 另一种是查询[l,r]内每种颜色出现位置的最大下标与最小下标之差的和操作的先后次序作为第一维 每种颜色的当前位置作为第二维 上一次出现的位置作为第三维 前后位置之差作为加值 进行cdq分治 这样查询操作就转换为查询矩阵之和了还有就是颜色的插入和删除比较麻烦 ...原创 2018-08-24 15:44:09 · 323 阅读 · 0 评论 -
动态逆序对 HYSBZ - 3295
https://www.lydsy.com/JudgeOnline/problem.php?id=3295给一个原始序列 每次删一个数 问删这个数之前有多少逆序对每个数从当前序列消失造成的影响就看 之前有多少数比当前数大 之后有多少数比当前数小 利用主席树做个前缀差即可 但是还有修改 所以要用动态主席树维护也可以用CDQ分治来做 首先逆向考虑(正向也可以) 整个过程就变为不断向数列内插...原创 2018-08-24 09:42:11 · 195 阅读 · 0 评论 -
陌上花开 HYSBZ - 3262
https://www.lydsy.com/JudgeOnline/problem.php?id=3262三维偏序 就是相同元素的处理比较麻烦 可以把相同元素的数量作为权值更新到线段树里#include <bits/stdc++.h>using namespace std;struct node0{ int id; int a; int b;...原创 2018-08-23 18:37:47 · 232 阅读 · 0 评论 -
Rabbit Kingdom UVALive - 6461
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4472又是一道***的**卡常题 在HDU上不是RE就是MLE 在uva上秒过 真是*****了 天天被卡常考虑CDQ分治 对每个数预处理所有素因子 然后看所有...原创 2018-08-27 23:53:17 · 182 阅读 · 0 评论 -
Tree 园丁的烦恼 HYSBZ - 1935
https://www.lydsy.com/JudgeOnline/problem.php?id=1935基础三维偏序问题 但是数据范围大 需要离散化还有 hysbz上数组开小了会WA 一直T 加了个输入挂才过。。#include <bits/stdc++.h>using namespace std;struct node1{ int tp; in...原创 2018-08-23 15:42:55 · 221 阅读 · 0 评论 -
Color it HDU - 6183
http://acm.hdu.edu.cn/showproblem.php?pid=6183两种操作 对一个点着色 查询矩形内所有颜色发现查询中的最小的横坐标始终是1 这就好处理多了 因为颜色我打算状压处理 没法前后缀相减一开始动态主席树直接搞 对每一行建立一棵线段树 因为第i棵线段树维护的是从1到i行的前缀 所以需要套树状数组来优化这个前缀和 至于每棵线段树内开个longlong状...原创 2018-08-26 17:01:15 · 224 阅读 · 1 评论 -
敌兵布阵 HDU - 1166
http://acm.hdu.edu.cn/showproblem.php?pid=1166cdq入门https://www.cnblogs.com/mlystdcall/p/6219421.html#include <bits/stdc++.h>using namespace std;struct node{ int tp; int pos; ...原创 2018-07-25 09:17:50 · 231 阅读 · 0 评论 -
Points and Rectangles Gym - 101964K
https://vj.e949.cn/d8a88a967901013f7b7fe74f87ec1001?v=1544329890对于加点的操作就看之前有多少矩形是包含他的 同样对于加矩形操作就看之前有多少点被其包含无强制在线 考虑CDQ分治 采用两种不同的处理方法即可 都比较模板 如果强制在线只能动态主席树 #include <bits/stdc++.h>usi...原创 2018-12-21 14:20:45 · 294 阅读 · 0 评论