
分治
hannibal_lecter_
这个作者很懒,什么都没留下…
展开
-
[CQOI2011]动态逆序对【CDQ分治】
还是比较模板的题可是一开始没想出来。。之前电科校赛就遇到这道原题,今天终于补上了。。 主要的思路还是计算出每个数对前面和后面的影响,然后删除的时候用总的减去就好了。。 但是问题在于,对于删除操作怎么动态的维护前后关系。就是说当我想要删除一个数a[i]之后,我要知道在1…i-1范围内有多少比a[i]大,在i+1…n中有多少比a[x]小的。 当然树套树可以做,但是常数和空间都比较大这个时候就可以用CD...原创 2019-07-19 01:08:12 · 102 阅读 · 0 评论 -
陌上花开【CDQ分治】
CDQ分治还是比较好理解的。 先按照一维排序,对一维排序的数组分治,分治的话相当于降了一维 我们只要考虑两个子区间里的数之间的大小关系,而不用考虑单个区间里面的数的影响(因为单区间里面的数已经被当成子问题解决了) 这个时候我们就可以对两个区间按照第二维排序,因为左区间的所有第一维都是小于右区间的而且我们已经不需要考虑区间内部的影响了。 现在问题转化成:两个按y排序的二维区间(y, x),右区间中每...原创 2019-07-16 20:55:14 · 215 阅读 · 0 评论 -
codeforces669E【CDQ分治】
地址 很模板的CDQ分治题。 需要考虑操作编号,操作时间,操作权值。 对于询问要找同时小于编号和时间的操作才影响当前的询问。然后搞一下就行了。。 甚至CDQ分治不用也行,树套树。。。 还是很好理解的,外层权值,内层时间。 cf上路人的有点NB的树套树代码 map<int, map<int, int>> tree; void update(int x, int a, in...原创 2019-07-19 18:05:13 · 214 阅读 · 0 评论