随笔分类 - 分治
1
摘要:题目描述 题解: 放完前$i-1$个数之后,$i$会让前面的数变成一个整体,而且与后面没有影响。 就有了$dp$方程:$$dp[i]=\sum(k^2*dp[i-k]*(k-1)!*C(i-1,k-1))$$ 拆开组合数之后有这个东西:$$\frac{dp[i]}{(i-1)!}=\sum(\fra
阅读全文
摘要:题目描述 题解: 显然一个整体一定是连续的一段数。 所以我们预处理长度为$len$的一组数的组成方案数就好了。 于是$dp$。 $dp[0]=0$,$dp[i]=i!-\sum(k!*dp[i-k])$ $i!$,这$i$个数瞎放。 $k!*dp[i-k]$,第$i$个数放到倒数第$k+1$位上,此
阅读全文
摘要:题目描述 题解: 很明显总体路径可以是一直向左/向右,或者先向一个方向跑几步,然后反向跑。 所以我们可以得到四种基本运动方式: LGL:一直向左; RGR:一直向右; LGR:先向左,然后向右回到原点; RGL:先向右,然后向左回到原点。 然后决策单调,分治求解上面四个东西,最后合并出结果。 代码:
阅读全文
摘要:题目描述 题解: 答案显然是$max((q-p)*(e-d))$ 依然先贪心。 对于工厂,我们倾向于$pi<pj,di<dj$的; 对于买家,我们倾向于$qi>qj,ei>ej$的。 于是将一定不是最优解的工厂和买家划掉。 然后我们发现这个东西是满足决策单调性的。 问我怎么证?画一个二维坐标系,然后
阅读全文
摘要:题目描述 题解: 看到网上几乎全是树套树, 我就写了个整体二分。 其中操作1,2,3一般整体二分都能做到。 对于前驱,我们只需要在线段树中多维护区间最大值即可; 对于后继…… 通通取反后再跑一遍查询前驱即可。 然后迷之卡空间。 最后迷之卡过。 代码:
阅读全文
摘要:题目描述 题解: 修改=删除+插入。 具体实现时保证先删除后插入。 就是对于某一位状态为插入->删除->插入->删除->……->插入。 而不是插入->插入->删除->……->插入->删除。 不然这个无脑错误会让普通线段树挂掉的。 代码:
阅读全文
摘要:题目描述 题解: 看不懂样例的dalao看这里: 每个位置加入一个数c指的是插入,一个位置上可以有很多数。 整体二分。 将修改和询问放在一起,然后二分值域,每次有询问时判断$k$和$sum[l,r]$的大小。 最后保证$[l,l]$时$k$减成$0$即可。 代码:
阅读全文
摘要:题目描述 题解: 考虑到答案具有单调性,我们将其放入二维树状数组/二维线段树即可。 代码:
阅读全文
摘要:题目描述 题解: 第一道整体二分。 如果只有一个询问,我们可以二分答案,然后O(n)验证; 对于多种询问而且不强制在线,我们就可以使用整体二分。 整体二分的精髓是,先想一个二分暴力,然后把所有二分过程放在一起。 还有,整体二分中,分的是值域。 对于本题直接二分值域,然后将前$mid$个操作扔到树状数
阅读全文
摘要:题目描述 题解: 题目都提示了, 很明显要导一波式子: $$dp[i]=max( dp[i-1] , \frac{ dp[j] } { A[j]*R[j]+B[j] } * (A[i]*R[j]+B[i]))$$ 后面那个东西相当与将第j天的R[j]个A和1个B绑在一起。 $dp[i-1]$没什么好
阅读全文
摘要:题目描述 题解: 用cdq分治求一个点左下方最近的点的距离,然后坐标系旋转。 代码:
阅读全文
摘要:题目描述 题解: 这位仁兄您点进来的题解是cdq+点分+斜率优化的。 吐草:细节是真多…… 先推一波式子: $dp[i]=min(dp[j]+(dis[i]-dis[j])*p[i]+q[i])=dis[i]*p[i]+q[i]+min(dp[j]-dis[j]*p[i])$ $min()$里面那个
阅读全文
摘要:题目描述 题解: 和二维的比起来差不多。 但是这是四维偏序。 所以搞一下CDQ套CDQ。 CDQ是维度a已经有序,按维度b排序,然后将维度c存入一维数据结构。 所以我们在第一层CDQ中分治处理,将合法的前一半打标记。 然后进入第二层CDQ,处理打标记的点对没打标记的点的影响。 可以说是将两维压成一维
阅读全文
摘要:题目描述 题解: 容斥,将询问变成4个加权询问。 然后就是cdq了。 代码:
阅读全文
摘要:题目描述 题解: 对于第一问,我们求二维LIS即可; 对于第二问,我们可以记录向前最长长度,向前最长方案数,向后最长长度,向后最长方案数。 其实改改树状数组即可。 还有,方案数一定要开double。 代码:
阅读全文
摘要:题目描述 题解: 将交换看作两个插入+两个删除。 然后CDQ。 代码:
阅读全文
摘要:题目描述 题解: 将前n个数看作插入,后m个数仍看作删除。 然后就是cdq分治。 代码:
阅读全文
摘要:题目描述 题解: 这是cdq分治模板题。 前置:cdq分治。 好像是一位大佬搞出来的神奇分治,可以直接干掉一层树形结构。 其实实现还是比较简单的。 对于区间(l,r),我们先处理(l,mid)和(mid+1,r),然后处理左右区间之间产生的影响。 具体顺序看题目而定。 比如本题,我们可以先令a有序,
阅读全文
1

浙公网安备 33010602011771号