
CDQ分治/整体二分
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
整体二分——BZOJ2527/Luogu3527 [POI2011]MET-Meteors
题面:洛谷3527 BZOJ2527 这题首先可以想到二分答案但是呢有很多点需要二分 同时每个点的二分状态都差不多 那么我们就一起二分(整体二分) 每次二分出答案以后对于每个国家计算有几颗流星 这个树状数组和线段树都可以维护(我用树状数组调了一个上午QAQ) 然后超过希望总数的点放到左边去,没有的放到右边去 然后分别继续二分 对然后统计答案即可#include<bits/stdc++.h>usi原创 2017-05-02 11:30:50 · 491 阅读 · 0 评论 -
CDQ分治——BZOJ3295/Luogu3157 [CQOI2011]动态逆序对
BZOJ传送门 Luogu传送门 以前一直想用树套树过掉此题,太懒不想写。。。(我不会告诉你我其实是不会树套树做法因为实在太恶心了。。。) 然后呢,现在掌握了新技能以后发现这题就可以很快地过去了 我们可以把删除操作看成倒着加入操作,然后。。。 这题就变成了时间为t时的逆序对数目,我们可以看成一个三维的比较,即a[i].t<=a[j].t,a[i].x < a[j].x,a[i].v >原创 2017-04-24 11:33:25 · 239 阅读 · 0 评论 -
CDQ分治——BZOJ4553 [Tjoi2016&Heoi2016]序列
传送门 和带三维的关键字最长不降挺像 所以我们可以先搞出所有数的原值,最小值和最大值 然后可以CDQ求解 我们首先l~mid按照最大值排序,mid+1~r按照原值排序(每个排列最多只能改动一个数) 然后计算前面的对后面答案的影响即可 跟LIS差不多,只不过最后一维我们用一个树状数组来维护 最后清空一下(和二维矩阵差不多) 对就是这样,答案记录一下最大值就好了 然后关于树状数组和排序原创 2017-04-23 20:37:23 · 496 阅读 · 0 评论 -
CDQ分治——BZOJ1176 [Balkan2007]Mokia
传送门 纪念我第一个CDQ分治代码(当然调了很久)还有这个很像某手机品牌的题目名称 二位数点但是差值太大树套树MLE+TLE 但是离线很重要,这个时候CDQ分治派上用场了(%%%陈丹琦dalao发明了这个东西) 我们先把所有操作按照x坐标先y坐标后排序(双关键字保平安) 然后区间l,r取mid,计算l~mid的修改对mid+1~r的查询的影响 我的做法是先把编号小于等于mid的换到左边去原创 2017-04-21 15:22:12 · 363 阅读 · 0 评论