
分治
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
分治——Luogu1429 平面最近点对(加强版)
题面:Luogu1429 关于求平面最近点对的方法有很多很多。。。 像是那种随机旋转角度然后暴力算的这种方法就很鬼畜QAQ 靠谱一点的算法呢就是分治了(我不知道这是不是CDQ分治) 我们计算区间l~r的最近距离 首先计算l~mid和mid~r的最近距离,然后考虑一下mid左边和mid右边对答案的贡献 首先记录下dist=min(l~mid答案,mid~r答案),然后把左边x坐标与mid的原创 2017-06-05 09:57:28 · 445 阅读 · 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 评论