
CDQ分治
Lynstery
一只蒟蒻
展开
-
[整体二分] BZOJ3110: [Zjoi2013]K大数查询
题意N个位置,M个操作。操作有两种: 1.在第a个位置到第b个位置,每个位置加入一个数c。注意是加入,也就是说这里的一个位置能放下多个数。 2.询问从第a个位置到第b个位置 的所有数中,第K大的数是多少。题解经典的整体二分题。 把所有操作排成一个序列,并二分答案mid。把当前操作序列中的所有插入的数大于mid的插入都执行一遍区间+1,对于每次询问即可求一次区间和得到比mid大的数有几个,原创 2017-02-12 10:34:26 · 530 阅读 · 0 评论 -
CDQ分治与斜率优化DP——学习笔记
我们知道当斜率优化DP中的点的x坐标不单调时,需要splay来维护凸壳,但是代码量比较大,容易写挂。 我们还有一种神奇的做法:CDQ分治。 先把n个状态排成一个序列。考虑一个分治过程solve(L,R),每次分成[L,mid],[mid+1,R]两部分。 显然对于fi只和1~i-1有关,所以我们solve(L,mid)递归求解,即可得到[L,mid]的所有f值。 现在我们需要考虑用[L,mi原创 2017-02-17 12:03:08 · 1601 阅读 · 0 评论 -
[动态MST] [CDQ分治] BZOJ2001: [Hnoi2010]City 城市建设
题意PS国是一个拥有诸多城市的大国,国王Louis为城市的交通建设可谓绞尽脑汁。Louis可以在某些城市之间修建道路,在不同的城市之间修建道路需要不同的花费。Louis希望建造最少的道路使得国内所有的城市连通。但是由于某些因素,城市之间修建道路需要的花费会随着时间而改变,Louis会不断得到某道路的修建代价改变的消息,他希望每得到一条消息后能立即知道使城市连通的最小花费总和, Louis决定求助于你原创 2017-07-11 22:53:40 · 568 阅读 · 0 评论