cdq分治
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
【WC2016模拟】String
Description:题解:一眼就是在后缀树上乱搞。仔细思考可以用dsu on tree+线段树来维护,常数巨小。nilil说用后缀数组+Cdq分治+线段树。大概是这样: 对于一个区间[x..y],设m=(x+y)/2那要求跨过m的两个点的答案。可以设l,r。l往左边扫过去,得到一个到终点的height的min值。同时r往右边调。使r到m的height的min值小于等于l的。反着做一遍。r往右边原创 2017-12-30 07:13:14 · 562 阅读 · 0 评论 -
【NOI2014模拟】数据
Description: 为了写论文,Alex经常要整理大量的数据。 这一次,Alex面临一个严峻的考验:他需要实现一个数据结构来维护一个点集。 现在,二维平面上有N个点。Alex 需要实现以下三种操作: 在点集里添加一个点; 给出一个点,查询它到点集里所有点的曼哈顿距离的最小值; 给出一个点,查询它到点集里所有点的曼哈顿距离的最大值。 两个点的曼哈顿距离定义为它们的横坐标差的绝对原创 2018-01-22 20:40:51 · 412 阅读 · 0 评论 -
【集训队互测2013】城市规划 (多项式求逆或分治FFT)
Description:刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了.刚才说过, 阿狸的国家有n 个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或间接的连通.为了省钱, 每两个城市之间最多只能有一条直接的贸易路径. 对于两个建立路线的方案, 如果存在一个城市对, 在两个方案中是否建立路线不一样, 那么这两个方案就是不同的, 否则就是相同的. 现在原创 2018-04-25 20:13:46 · 364 阅读 · 0 评论 -
【gdoi2018 day1】涛涛接苹果
题目大意:太长了,不想写。题解:看到这个子树问题,很容易想到dfs序转区间。再写写约束,发现有三个,并且满足容斥性。于是排序搞掉一个,cdq搞掉一个,树状数组搞掉一个,贼好写。主席树,K-D Tree当然也可以,有些复杂。Code:#include<cstdio> #include<algorithm> #define low(a) ((a) & -(a)) #define ll long lon原创 2018-05-07 21:56:11 · 416 阅读 · 0 评论 -
lhxsb(cdq分治+单调栈)
题目大意: 有删点,动态的询问一个点向左向右能看到的最远的点。 题解: 假设没有删点,这个显然可以直接单调栈前后扫两遍搞定。 如果有了删点,考虑cdq分治。 cdq分治搞不了删点,倒着变成加点。 第一维是时间,第二维是x 对于分治到区间(l,r),设m=l+r>>1 cdq分治让我们只用去处理[l..m]的插入对[m+1..r]的询问的影响。 强行建出单调栈,求能看到...原创 2018-05-24 21:35:11 · 411 阅读 · 0 评论