CDQ分治
小蒟蒻yyb
Studnet
展开
-
【BZOJ3262】陌上花开(CDQ分治)
题解原来放过这道题目,题面在这里 树套树的做法也请点上面这回用CDQ分治做的 其实也很简单, 对于第一维排序之后 显然只有前面的对后面的才会产生贡献那么,使用CDQ分治 先分,每次递归子问题 合并的时候每次考虑前面的对于后面的贡献 最后统计一下答案如果在清空树状数组的时候用了memset会TLE#include<iostream>#include<cstdio>#include<c原创 2017-12-09 16:49:42 · 359 阅读 · 0 评论 -
【Luogu1393】动态逆序对(CDQ分治)
题面题目描述对于给定的一段正整数序列,我们定义它的逆序对的个数为序列中ai>aj且i输入输出格式输入格式:第一行,两个数n,m,表示序列中有n个数,要删去m个数第二行n个数,表示给定的序列。第三行m个数,第i个数di表示要删去原序列中的第di个数。输出格式:一行m+1个数。第一个数表示给定序列的逆序对组数,第i+1个数表示删去第di个数后序列的逆序对组数(删去的数不再恢复)输入输出样例输入样例#1:原创 2017-12-27 21:44:44 · 912 阅读 · 0 评论 -
【BZOJ4237】稻草人(CDQ分治,单调栈)
题面[BZOJ]题解CDQCDQ分治好题呀 假设固定一个左下角的点 那么,我们可以找到的右下角长什么样子???发现什么? 在右侧是一个单调递减的东西那么,对于每一个已经固定好的左下角 我们可以通过单调栈来维护答案既然只有左下角对右上角会产生贡献 那么,按照xx轴排序之后可以CDQCDQ分治CDQCDQ分治怎么搞?如果在上面的基础上多了几个点。。 那几根棕色的线链接的连是不能贡献答案的原创 2018-02-05 19:30:02 · 286 阅读 · 0 评论 -
【BZOJ2141】排队(CDQ分治)
题面题面以及树套树做法见这里题解大部分树套树/主席树这类题目都可以用整体二分/CDQ分治来做。这题考虑一下,在不考虑修改的情况下 贡献是如何产生的? 我们发现是个二位偏序问题(或者说是一个逆序对修改版本) 现在有了一个修改,那么产生贡献的前提额外增加一个:时间。 既然变成了一个三位偏序问题 考虑CDQCDQ分治按照时间分治,块内按照xx排序,考虑左侧对右侧的贡献: 维护当前数字(离散后)原创 2018-04-09 20:58:30 · 264 阅读 · 0 评论 -
【BZOJ1176】Mokia(CDQ分治)
题面BZOJ权限题啊,,,, dbzoj真好Description维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000.Input第一行两个整数,S,W;其中S为矩阵初始值;W为矩阵大小接下来每行为一下三种输入之一(不包含引号):“1 x y a”“2 x1 y1 x2 y2”“3”输入原创 2018-04-09 21:58:50 · 325 阅读 · 0 评论 -
【BZOJ1492】【NOI2007】货币兑换(动态规划,CDQ分治,Splay)
题解首先考虑一下暴力吧我们想想,肯定是一天把手上所有钱全部买了之后在后面的某一天把他们全部卖出去。考虑一个dpdp 设f[i]f[i]表示第ii天手上的AA券的最大值 ansans记录任意时刻手中的最多钱数 那么, 对于一个f[i]f[i]而言 ans=max(ans,f[j]全部在第i天卖掉)ans=max(ans,f[j]全部在第i天卖掉) f[i]=ans全部买掉f[原创 2018-04-04 14:43:10 · 310 阅读 · 0 评论