E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【CDQ分治】
bzoj 3262(
cdq分治
+树状数组)
(正经题解在后面)斜体字都是一年前在没有把cdq扯清楚的情况下应付的,即使现在真正理解了cdq,还是将这堆话留在这,毕竟,花无重开日,人无再少年——RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time237469327116948973262Accepted6376kb1632msC++/Edit1851B2017-10-23
KGV093
·
2017-10-23 19:30
数据结构
Wannafly模拟赛4 A 题 Laptop 【二维偏序问题 + 树状数组维护】
传送门//这个是经典的二维偏序问题,偏序问题也是比较难的一部分,当上了三维以后,就要不断用
cdq分治
以及一些高级数据结构来解决.但是这道题还是比较简单的,只是一个普通的二维偏序,所以直接对第一维进行排序
Anxdada
·
2017-10-21 23:42
树状数组
NOIP 2017 复习计划
基础栈、队列、线段树与树状数组打几个模板题即可,然后是分块和
CDQ分治
。先理解,再刷题。主席树在后面。然后是平衡树。
Hawo11
·
2017-10-11 21:58
————集训总结————
————专题————
Codeforces848C Goodbye Souvenir --
CDQ分治
发现答案可以表示成∑i=lr[l≤previ]×(i−previ)由于previ≤i,还可以表示为∑i=1r[l≤previ]×(i−previ)然后直接
CDQ分治
就可以了。
gjghfd
·
2017-09-02 21:20
CDQ分治
HDU1166:敌兵布阵(
CDQ分治
)
传送门题意:单点修改,区间求和题解:当然,线段树或者树状数组或者其他数据结构就是裸题了,其实还有CDQ搞法,空间上直接优化logn。首先区间求和等同于前缀求和,转化为时间上ausingnamespacestd;constintMaxn=3e5+50;streambuf*ib,*ob;inlineintread(){charch=ib->sbumpc();inti=0,f=1;while(!isdi
DZYO
·
2017-09-01 15:19
分治
HDU 6183 Color it [
CDQ分治
+线段树+位压缩]
题解:这道题一共四个维度,我们可以这样分配:x轴排序,时间用
cdq分治
,y坐标用线段树,颜色用位压缩(64位表示)。
ACTerminate
·
2017-08-31 21:14
线段树
CDQ分治
HDU
状态压缩
BZOJ4237:稻草人 (
CDQ分治
+二分+单调栈)
——by龙神现在我也想说,有些题目,只要往
CDQ分治
上去想,就莫名其妙变成了水题。
KsCla
·
2017-08-14 16:56
二分三分
CDQ分治
CDQ分治
--模板 BZOJ 3262--陌上花开【三维偏序】
题解这是典型的三维偏序的问题,可以套高级数据结构,当然,更简便的做法是用
CDQ分治
。什么是
Sdywolf
·
2017-07-16 14:20
BZOJ
总结
CDQ分治
[BZOJ2716][Violet 3]天使玩偶
CDQ分治
+树状数组
按时间分治,把每个询问拆成四个方向的查询,这样曼哈顿距离可以直接用减法得到一维时间分治,二维x坐标排序,三维y坐标树状数组#include#includeusingnamespacestd;constintmaxn=1000000+10;constintINF=1000000000;intmax_x;intans[maxn];structBIT{intc[maxn];intlowbit(intx)
HbFS-
·
2017-04-23 20:44
CDQ分治
玄学算法
CDQ分治
啊刚学这个啊刚过了一道题就屁颠屁颠来写博客很虚啊bzoj4553就是这道题说一下我对
CDQ分治
的理解我感觉。。这个就类似于。。把暴力,转化为。。容易优化的暴力。。然后优化??
Fop_zz
·
2017-04-21 14:43
算法
[BZOJ4430][Nwerc2015]Guessing Camels赌骆驼(
cdq分治
+bit||bit)
题解处理出每一个数在三个排列中的位置,就形成了n个三维点对然后就是一个三维偏序问题了,用
cdq分治
+bit求解做完之后发现有一个更厉害的只用bit的方法考虑容斥,答案=总数-不符合条件的对数然后又知道不符合条件的点对一定是在两个排列里相对位置相同
Clove_unique
·
2017-04-06 19:02
题解
bit
cdq分治/整体二分
[BZOJ2726][SDOI2012]任务安排(斜率优化dp+
cdq分治
)
题目描述传送门题解哈哈哈速度实力倒数第一也不知为什么写的奇慢无比卡常数卡到丧心病狂才勉强过了我分明是把sort都搞成归并了呀…这题是dp+
cdq分治
好题啊首先考虑最裸的dp怎么搞f(i)表示前i个搞完的最小花费
Clove_unique
·
2017-03-26 22:05
题解
dp
省选
cdq分治/整体二分
[BZOJ3963][WF2011]MachineWorks(斜率优化dp+
cdq分治
)
题目描述传送门题解首先考虑如何暴力dp肯定是先按照D(i)排序对吧令f(i)表示在第D(i)天卖掉手里有的机器所能得到的最大收入那么有一个很显然的dp方程:f(i)=max{f(i-1),max{f(j)-P(j)+G(j)*(D(i)-D(j)-1)+R(j)}}(1令y(j)=f(j)-P(j)-G(j)*D(j)-G(j)+R(j),x(j)=G(j)->f(i)=D(i)*x(j)+y(j
Clove_unique
·
2017-03-26 21:50
题解
dp
cdq分治/整体二分
bzoj 3963: [WF2011]MachineWorks (DP+
CDQ分治
)
题目描述传送门题解将所有的机器按照d从小到大排序。f[i]表示买入第i台机器后的最大收益,则f[i]=max{f[j]+(d[i]−d[j]−1)∗g[j]+r[j]}−p[i],其中j#include#include#include#include#defineN100033#defineeps1e-9#defineLLlonglongusingnamespacestd;constdoublei
clover_hxy
·
2017-03-26 14:15
动态规划
cdq分治&整体二分
[BZOJ4237]稻草人(
cdq分治
+单调栈+二分)
题目描述传送门题解对x排序了之后按照x分治,每一次对y排序考虑如何处理左区间里的点对右边的点的影响,也就是如何计算左边和右边配对的情况用两个指针扫的时候,如果左边的连续一段区间里的点想要都和右边的某一个点配对的话,必须满足x单调递减而右边的区间的某一个点如果要是想和左边的点配对的话,只能是y在它和第一个x在它左边的点所确定的y的范围内的点对于左边的点维护一个x单调递减的栈,对右边的点维护一个x单调
Clove_unique
·
2017-03-24 21:51
题解
单调栈
二分
cdq分治/整体二分
[BZOJ2253][2010 Beijing wc]纸箱堆叠(dp+bit+
cdq分治
)
题目描述传送门题解最长上升子序列+三维偏序问题裸的dp人人会对吧O(n2)考虑对序列进行
cdq分治
,每一次用左边的区间来更新右边的区间按照x分治,每一次按照y排序,然后z用树状数组查询需要注意的是,这里全部都是严格大于
Clove_unique
·
2017-03-24 21:46
题解
dp
bit
cdq分治/整体二分
bzoj 3295: [Cqoi2011]动态逆序对 (
CDQ分治
+树状数组)
题目描述传送门题目大意:对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。题解这道题之前写过树状数组套线段树。首先我们把所有的删除操作倒过来,变成插入操作。我们考虑加入一个点会产生的逆序对数。产生的逆序对数是在他之前插入在他的位置之前的比他大的数+在他的位置之后的比他小的数。我们
clover_hxy
·
2017-03-24 17:14
树状数组
cdq分治&整体二分
bzoj 2683: 简单题 (
CDQ分治
+树状数组)
题目描述传送门题目大意题解
CDQ分治
,把询问拆成x1-1,和x2两种操作。每次将区间中的操作按照横坐标排序,然后二分,加入[l,mid]中的操作,[mid+1,r]中的询问统计[y1,y2]之间的和。
clover_hxy
·
2017-03-24 17:49
树状数组
cdq分治&整体二分
BZOJ4237: 稻草人
CDQ分治
,按照横坐标排序,二分高度,按mid将当前处理的点分成两部分,计算高度>mid作为右上角的对高度≤mid的作为左下角的贡献横坐标从右往左扫,因为田地内部不能有稻草人,所以对于右上角要求从右往左高度递增
L_0_Forever_LF
·
2017-03-18 15:10
BZOJ
分治
USACO二月月赛 铂金组 friendcross
CDQ分治
+树状数组
题目描述Problem3.牛为何要过马路(三)道路两旁各有n个互不相同牧场,类型为a的牛和类型为b的牛友好当且仅当|a-b|≤K。给定路两旁的牧场,牛会穿过马路,去对⾯同类型的牧场。请算出有多少对相互不友好的牛的路径会相遇。n,k#defineN100050usingnamespacestd;typedeflonglongLL;intn,k,a[N],b[N],d[N],p[N],cnt;LLan
HbFS-
·
2017-02-27 17:00
CDQ分治
【bzoj3295】动态逆序对
CDQ分治
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3295【题解】这题很神。我用的是popoqqq大爷的做法。具体见http://blog.csdn.net/popoqqq/article/details/38761287感觉这种做法似乎应该称为整体二分?#include#include#include#include#include#inc
chty_syq
·
2017-02-23 21:52
bzoj
CDQ分治
[BZOJ4537][Hnoi2016][分块]最小公倍数
很神的做法……第一眼以为是
cdq分治
加lct(排序a,分治b)敲完lct模板发现处理不了某条边a很大b很小的情况……把边按a排序,分成B块,第i块的a的权值范围为[Li,Ri],那么对于询问j,aj在[
LowestJN
·
2017-02-23 15:12
【bzoj2683】简单题
CDQ分治
+树状数组
id=2683【题解】话说这题好像可以用整体二分来做(蒟蒻不会啊),CDCQ大神的整体二分比我的
CDQ分治
高到不知道哪里去了。
chty_syq
·
2017-02-23 11:44
bzoj
树状数组
CDQ分治
【bzoj3262】陌上花开
CDQ分治
+树状数组
id=3262【易错点分析】相信会写
CDQ分治
的人都会这道题,所以我就来讲一讲博主在做题时遇到的错误(ps:静态查错大法好)1、tb的右端点多次打成r2、排序过程中忘记定义z的优先级3、被题目所坑:考虑两个属性值相同的花
chty_syq
·
2017-02-23 09:52
HDU 5412 CRB and Queries(整体二分 |
CDQ分治
)
分析:整体二分的裸题吧算是,整体二分和
CDQ分治
还是有点不同的,主要是他还把答案二分出来了,每次判定的时候都会把答案往他应该去的地方放,到了最后就是要查询的答案了,讲的话太复杂,还是看代码理解吧代码:/
只玩三国的程序猿
·
2017-02-02 21:25
算法
CDQ分治
——NKOJ3210 围牛群
考虑
cdq分治
,按照输入的顺序,左区间的点对右区间的询问都会有影响。所以直接求出左区间点构成的凸包,静态查询右边区间的直线是否切割凸包即可。
Nocownowa
·
2017-02-01 13:51
计算几何
分治
【NOIP2014模拟10.25A组】画矩形
其实,这是一道裸的
cdq分治
,把询问拆成[l,mid]和[mid+1,r],[l,mid]的修改会对[mid+1,r]的修改产生影响。
Facico
·
2017-01-21 07:01
noip
树状数组
CDQ分治
bzoj2683&&1176
CDQ分治
2683:简单题Description你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作:①读入:1xyA1#include#includeusingnamespacestd;constintN=800100;intn,m,tot,ans[N],w,x1,yy1,x2,y2,k,c[N],cnt;structnode{intx,y,id,op,z,c;}g[N]
priority_ez
·
2017-01-17 21:34
bzoj
CDQ分治
CDQ分治
&&整体二分
CDQ分治
bzoj2244bzoj2683&bzoj1176√ps:2683&1176是双倍经验题~题意:一种操作一种询问1,x,y,a表示将(x,y)点值加上a2,x1,y1,x2,y2表示询问以(x1
priority_ez
·
2017-01-09 20:27
各种算法
CDQ分治
整体二分
bzoj 2716: [Violet 3]天使玩偶(
cdq分治
)
2716:[Violet3]天使玩偶TimeLimit:80SecMemoryLimit:128MBSubmit:1231Solved:541[Submit][Status][Discuss]DescriptionInputOutputSampleInput10010081232716525844242595342962581497509718643472255288937754567229086
clover_hxy
·
2016-09-10 19:45
树状数组
cdq分治&整体二分
Regionals 2015 >> Europe - Northwestern >> 7429 - Guessing Camels【
CDQ分治
】
Europe-Northwestern>>7429-GuessingCamels题目大意:给出3个n长度的序列,问绝对位置有几对。绝对位置比如(2,1)是一对,因为在这三个序列中2都在1的前面题目思路:转化一下,如图所示2:在三个序列中出现的位置为(1,1,1)3:在三个序列中出现的位置为(2,4,3)位置记为(x,y,z)如果要保证A的绝对位置在B的前面,那就是说要满足(x1#include#i
宣之于口
·
2016-08-04 20:14
Regionals
ACM解题报告
CDQ分治
[BOI2007]摩基亚Mokia (
cdq分治
)
摩尔瓦多的移动电话公司摩基亚(Mokia)设计出了一种新的用户定位系统。和其他的定位系统一样,它能够迅速回答任何形如“用户C的位置在哪?”的问题,精确到毫米。但其真正高科技之处在于,它能够回答形如“给定区域内有多少名用户?”的问题。在定位系统中,世界被认为是一个W×W的正方形区域,由1×1的方格组成。每个方格都有一个坐标(x,y),1#include#include#include#include
Miracle_ma
·
2016-07-01 21:18
整体二分
&&
CDQ分治
昨天学习了一下整体二分,写了一下。真的好快……0.3s怒过bzoj1901QAQ我们先来总结一下什么是整体二分:拿带修改区间第k大作为例子:1.如果单独得到一个答案,也就是一次询问,那么我们可以考虑二分答案,然后统计区间[l,r]中小于等于k的数字的个数。2.考虑这样做的复杂度,一次是nlogn,即每次看一下区间[l,r]之间小于答案的有多少个。它的效果等同于排序,都是nlogn。3.但是这个东西
zxn0803
·
2016-06-14 09:00
【bzoj3563】DZY Loves Chinese 在线
cdq分治
+并查集
和3237做法差不多,把
cdq分治
改成在线的就可以了。至于怎么在线
cdq分治
?这个只可意会,不可言传。
u012288458
·
2016-05-11 20:00
【bzoj3237】[Ahoi2013]连通图
cdq分治
+并查集
cdq分治
首先把所有没有影响的边都建出来分治过程:1、把左边没有右边有的边建出来2、分治左边3、把并查集恢复至初始的样子4、把右边没有左边有的边建出来5、分治右边每次建的边数为这个区间内的集合中的边数,
u012288458
·
2016-05-11 18:00
hdu5126stars
分析:在普通
cdq分治
上多了一维,那么套一个
cdq分治
就行啦。cdq套cdq,过程很简单,但是复杂度高一点而已。O(n(logn)^3)。详见
Fsss_7
·
2016-05-10 00:00
[
CDQ分治
并查集] BZOJ 3237 [Ahoi2013]连通图
考虑
CDQ分治
把这半边对后半边没有影响的操作做了然后分治用并查集维护开个栈暴力还原#include #include usingnamespacestd; inlinecharnc() { staticcharbuf
u014609452
·
2016-05-08 12:00
bzoj 3295: [Cqoi2011]动态逆序对 【
cdq分治
】
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295题意:中文题分析:我们先预处理出每个数为逆序对做出的贡献多少,可以分成和前面或后面的数组成逆序对个数,删除的时候减去这些贡献就行了?显然不是,应为对于一个逆序对a,b,删除a的是时候减去了他的贡献,然后再删除b时重复删除了贡献。那么我们得找出方法把减得加回来,设删除的数为x,在数组的位置为
u012483216
·
2016-05-04 22:00
bzoj3672 购票 树上dp&树上
cdq分治
考虑一条链的情况,显然可以离线后
cdq分治
。 树上的话,不妨称之为树上
cdq分治
(好吧承认是我自己yy
lych_cys
·
2016-05-04 20:00
动态规划
cdq分治
树形DP
树上cdq分治
[
CDQ分治
] codeforces 669E. Little Artem and Time Machine
题意:要你维护一个带时间戳的multiset,有三种操作。-形如:1ab,在第a秒插入1个b。-形如:2ab,在第a秒删除1个b。-形如:3ab,查询当前在a秒时有多少个b。需要注意输入有顺序,multiset自己也有时间戳。题解:感觉CDQ可以做,2维的,写了一发然后AC了,第一次独立写CDQ。我对CDQ理解也不深,不乱说了,直接看代码比较简单。#include usingnamespacest
kg20006
·
2016-05-04 18:00
codeforces
cdq分治
[
CDQ分治
并查集 || LCT] BZOJ 4025 二分图
Po姐的姿势:http://blog.csdn.net/popoqqq/article/details/45671813LCT的做法:考虑随便维护一个图的生成树,不难发现,如果一条边加入后,形成奇环的话就不是二分图否则的话,我们可以无视这条边,因为如果之后再新加入一条边和这条边形成了一个奇环那么新加入的边一定和原来生成树上的边也能形成奇环所以我们直接维护一棵生成树即可然后裸的想法就来了:上lct,
u014609452
·
2016-05-02 13:00
[置顶] 填坑计划
算法:数据结构类:并查集树上倍增树状数组线段树平衡树LCT主席树单调队列单调栈网络流Tarjan经典算法类:二分拓扑排序Hash线性规划(差分约束、单纯形)莫队分块三分
cdq分治
扫描线启发式合并DP类:
Clove_unique
·
2016-04-29 16:00
初探
cdq分治
cdq好神啊TAT,先跪舔再说总而言之就是学到了好多东西(懒得说了另外发现了时间戳还能这么用,除了orz我还能干嘛呢(这标题跟内容似乎完全没有关系啊==)
the301stdoub
·
2016-04-29 15:00
[BZOJ3295][Cqoi2011]动态逆序对(树状数组套线段树||
cdq分治
)
题目描述传送门题解树状数组套线段树。向序列里插入点显然要比删点方便很多。首先知道一个点对整个序列的逆序对的贡献其实是这个点前面有多少个比它大的点加上后面有多少个比它小的点。利用树状数组求前缀和的特点可以求出这个点前面有多少个比它小的点和后面有多少个比它小的点,再用区间中的点减一下即可。那么用线段树来解决区间问题。线段树表示当前树状数组所代表的范围中元素的个数。那么查询的时候只需要在求前缀的时候把一
Clove_unique
·
2016-04-28 14:29
题解
线段树
bit
省选
树套树
cdq分治/整体二分
【BZOJ2773】ispiti【
CDQ分治
】【线段树】
【题目链接】很容易看出来是
CDQ分治
,但是细节比较多。令B为x轴,A为y轴...给x轴排序要按降序排,而且当插入与查询在同一个点时,要先查询再插入,这样就不用维护次小值了。
BraketBN
·
2016-04-28 12:00
bzoj3295[Cqoi2011]动态逆序对(
cdq分治
||可持久化线段树)
题目链接:点这里!!!3295:[Cqoi2011]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 3043 Solved: 967[Submit][Status][Discuss]Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之
u014325920
·
2016-04-25 22:00
主席树
cdq分治
可持久化线段树
ACdream 1157 Segments 【
CDQ分治
】
链接:http://acdream.info/problem?pid=1157题意:中文题分析:与bzoj1176分析一致,要求是这条线段被多少条包含,所以我们按x=y1,z #include #include #include #include #include #include #include #include #include #include #include #include #def
u012483216
·
2016-04-25 21:00
bzoj3295: [Cqoi2011]动态逆序对
分析:本来打算练习
cdq分治
的,明天补吧。不过看到这题一眼就想用可持久化线段树,不过带修改的可持久化线段树开销有点大,变了一种方法卡了点空间才过。详见代码。O(nlogn*logn)。
Fsss_7
·
2016-04-24 23:00
cdq分治
可持久化线段树
bzoj 3262: 陌上花开 【
cdq分治
】
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3262题意:中文题。分析:题目已经给出花的等级条件,我们只要求出有多少朵花小于它,等于的我们之后讨论,我们按照条件排好序,这时排序就已经处理了s,我问cdq时对[1,k]进行分治,mid=(l+r)>>1,对于mmid的有贡献,这个贡献用树状数组求(c),然后我们将这个区间按mmid,挪动。代码
u012483216
·
2016-04-24 21:00
bzoj 1176: [Balkan2007]Mokia 【
CDQ分治
】
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1176题意:中文题分析:题目要求一个子矩阵的所有权值和,我们可以将询问用容斥分成四块,可以通过加加减减得到原矩阵;现在我们把这些询问都成了与修改一样的操作形式,对于这些操作我们加入一个时间戳z,那么一个修改(x,y,z)会对询问(x1,y1,z1)产生影响的必要条件就是x>1,所有时间戳小于mi
u012483216
·
2016-04-24 21:00
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他