Icefox的博客

生活不止眼前的苟且,还有诗和远方。

bzoj3163 [Heoi2013]Eden的新背包问题(分治+背包dp)

每次询问去掉物品i之后,j的钱最多可以买多大价值的东西。 我们可以分治[l,r]表示l~r的物品不买的背包数组。然后递归处理[l,mid]时把[mid+1,r]的物品转移进来,递归处理[mid+1,r]时把[l,mid]的物品转移进来。 转移的时候就是一个多重背包,可以单调队列优化。 复杂度...

2018-07-03 17:01:29

阅读数 192

评论数 0

bzoj2739 最远点(凸包+决策单调性+分治)

给定一个凸包,询问每个点距离最远的点的标号。 我们按逆时针考虑每一个点i,距离i最远的点j也是在逆时针转的。 因此我们可以把这个凸包拆成链,(把点再复制一次),每个点i合法的点的区间为[i,i+n]。其余点到i的距离为-inf。这样我们就有决策单调性了,随着i的增大j也是单增的。因此我们可以直...

2018-07-02 23:05:53

阅读数 231

评论数 0

bzoj2216 [Poi2011]Lightning Conductor(决策单调性+分治/二分+单调栈)

化简一下就是求ans[i]=max{aj+|i−j|−−−−−√}−a[i]ans[i]=max{aj+|i−j|}−a[i]ans[i]=max\{a_j+\sqrt{|i-j|}\}-a[i] 我们把绝对值去掉,正着倒着各做一遍即可。 现在只考虑<i&...

2018-07-02 21:56:10

阅读数 213

评论数 0

bzoj4184 shallot(线段树时间分治+线性基)

我们按时间建线段树,把所有数的存在时间求出来,一定是一个连续的区间,插到线段树对应区间上。线段树每个节点挂一个vector来存数。这样就把删除操作避免掉了。然后从上到下dfs一遍线段树,把每个叶子的线性基合并出来即可,复杂度O(nlognlogw)O(nlognlogw)O(nlognlogw) ...

2018-06-25 21:33:11

阅读数 76

评论数 0

bzoj3924 [Zjoi2015]幻想乡战略游戏(动态点分治)

就是求带权重心,可以修改点权。 我们首先建出重心树。对于每个节点x记 s1[x]–x的子树到x的答案, s2[x]–x的子树的点权和, s3[x]–x的子树到fa[x]的答案。 那我们就可以通过这些信息得出以x为重心的答案(在重心树上一直往上跳,复杂度O(log n).) 修改点权时,...

2018-02-23 21:45:27

阅读数 249

评论数 0

bzoj4519 [Cqoi2016]不同的最小割(最小割树,分治)

求所有点对的最小割中,不同的最小割数值有多少个。我们建出等价流树,看这n-1个最小割有几个不同的就好啦。

2018-01-09 13:13:02

阅读数 215

评论数 0

bzoj2229 [Zjoi2011]最小割(最小割树,分治)

一个n个点的图,对于任意四点x,y,z,w,他们的最小割可以不相交。这样我们就可以分治的来求出等价流树。等价流树就是这样一棵树,使得图中两个点的最小割的权就是树上对应链上的最小边权。好像和最小割树不太一样?怎么分治呢?首先对于点集V,我们钦定一个S和T,跑最小割,把原图分成S集和T集,更新所有目前...

2018-01-09 11:38:36

阅读数 187

评论数 0

luogu1115 最大子段和(递推/分治)

一直记着之前得到的能接着连下去的最大值tmp,始终更新答案ans。

2017-07-31 15:04:57

阅读数 263

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭