
分治
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017纪中10-27]图 分治+DP
题面 首先发现总左往右考虑l到r的边,从u走到v的最小代价,相当于从右往左考虑r到l的边,从v走到u的最小代价。 于是支持从某条边向两边拓展,考虑离线分治。 假设当前在处理分治区间[L,R],设 mid=(L+R)/2,询问区间跨过了 mid 的询问就可以求解,用 DP 得到 lef[i][x][y]表示从 x 出发,处理了从 i 到 mid 的边之后到达 y 的最小代价,以及 rig[i][原创 2017-10-28 07:57:08 · 459 阅读 · 0 评论 -
[BZOJ4576]262144 分治/区间DP
只有我是鬼畜的分治做法吗。。。先形象的理解,假如某一个很小的数孤零零的在那里,它阻断了左右两边的合并,导致问题可以被分治解决考虑从小的数字往大的数字合并,若有一2*k长度的相同数字块,我们可以直接将数字加一而长度变为k,若有一2*k+1长度的,则必定会阻断左右,则要分合并后的k个分给左边和右边两种情况讨论。solve(l,r,b)表示把l到r的中的b元素全部合并所能的到的最大值。用双向链表维护上述数原创 2017-10-21 07:22:58 · 400 阅读 · 0 评论 -
[2018雅礼省选集训3-25]bsh 分治最短路
因为是三角剖分,所以每一条对角线都把多边形分成两部分,于是考虑分治。 先找到一条把多边形分得比较均匀的对角线,对两个端点做一下bfs,处理掉起点和终点分别在这条对角线两侧的询问(分经过某个点或者经过这条边三种情况更新),然后继续分治直到三角形为止。 选对角线的时候直接选最远的即可。 代码:#include<iostream>#include<cstdio>...原创 2018-04-16 15:56:32 · 414 阅读 · 0 评论 -
[BZOJ2001][HNOI2010]城市建设 分治最小生成树
有一个引理,就是做最小生成树的时候,假设有mmm条边权值不确定,是可以把整个图简化到边数只有O(m)O(m)O(m)级别的。 也就是说假如考虑分治,把修改的那些边看成不确定边,然后简化一下图,分治下一层的时候就大概只需要做边数只有分治区间大小级别的最小生成树,复杂度就能降到O(mlog2m)O(mlog2m)O(m\log ^2m)。 具体简化图的方法如下: 1. 先强制合并所有不确定边(...原创 2018-05-20 19:44:08 · 614 阅读 · 0 评论 -
[联合集训6-22] 路灯 整体二分+扫描线树状数组
先给每个点重新设一个坐标(就是把给定的两个边界强行定成横纵坐标找),这个坐标可以直接通过和两个边界叉积得到。 于是点iii的答案就是其左下方所有点答案的第kikik_i小值,如果不足kikik_i个点答案就是iii。 于是我们可以考虑整体二分,二分一个时间MidMidMid,把编号≤Mid≤Mid\le Mid的点强行点亮,看剩下的点中有多少个也能跟着亮。这个二维数点可以横纵坐标分别为一二关键...原创 2018-06-22 22:12:20 · 347 阅读 · 0 评论 -
[JZOJ5748] 小Y增员操直播群 递推+分治
题目中是把所有而不是一部分互膜记录给出了。。。 注意到原本在一个子群的成员到最后一定是一个连续的区间,假设我们在已知[l,r][l,r][l,r]是一个群,考虑如何分裂它。设与rrr相连的最小点是xxx,当区间长度为偶数且x=l+r−12x=l+r−12x=\frac{l+r-1}{2}时左右大小相同,xxx即为左半部分右端点,否则r−x+l−1r−x+l−1r-x+l-1相连的点一定就是左半部...原创 2018-06-01 18:10:09 · 467 阅读 · 0 评论