思想---启发式分治
#
夕林山寸
这个作者很懒,什么都没留下…
展开
-
UVA1608-Non-boring sequences 启发式分治
贴下前辈的理解:有时候我们会碰到这样一类题目,给定n个数,求满足某种条件的点对数目或最大权值,而这个最大权值与点对(a,b)的区间[a,b]的区间最大/最小值有关。那么这时就可以考虑分治,对于区间[L,R][L,R],找到最小/大值所在位置,然后处理横跨最小/大值所在位置的点对,然后递归处理子区间。我的理解::感觉启发式分治是一类问题:就是区间问题,可以找到只要跨...原创 2019-08-24 19:32:28 · 193 阅读 · 0 评论 -
2019牛客暑期多校训练营(第三场)
G:Removing Stones启发式分治首先一个区间满足条件一定是:区间最大值MA的2倍小于等于区间和。跟最大值和子区间有关,所以我们很容易想到:启发式分治:对于一个区间L,R先找到最大值的位置pos然后包括最大值的区间:左端点l,右端点r。我们枚举一个端点,另一个端点二分查找,复杂度nlogn^2。假如枚举了左端点l,我们二分查找pos--R之间第一个su...原创 2019-08-24 23:07:42 · 98 阅读 · 0 评论 -
2019 Multi-University Training Contest 10 ( hdu6701)
1011:启发式分治:又看到区间最大值,询问满足题意子区间个数,我们自然而然想到启发式分治。满足MAX-K<=区间长度。且区间内无重复元素。首先可以对MAX的点pos,左右分治递归。枚举离pos近的一段,利用题目关系算出另一端的取值范围,进而加到ans上。就是启发式分治的套路了。这一题也是一样,关键就是怎么快速算出另一端的取值范围。对于区间[L,R]假如从左边...原创 2019-08-25 19:49:22 · 190 阅读 · 0 评论 -
P4755 启发式分治
找到满足 a[l]*a[r]<=a[pos],a[pos]为区间最大值。的区间个数又是套路,区间最大值+找满足题意的区间个数。很容易想到启发式分治枚举少的一端,另一端查询区间小于等于x的数的个数即可。这个操作用主席树维护就行。具体过程可以仿照我前几篇启发式分治的过程,很清楚。这里注意主席树查询的是小于等于x的数。但我们加上离散化后,你要用upper_bound找到严格大于...原创 2019-08-25 20:54:08 · 182 阅读 · 0 评论