分治
文章平均质量分 72
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ3939 [Usaco2015 Feb]Cow Hopscotch
考虑分治,一个点只会受到他左半边和上半边的影响,所以像cdq分治一样,先递归左半边,再递归右半边,然后处理左半边对右半边的影响记录一个全局和和每个颜色的和即可#include#include#include#include#include#include#include#include#include#include#include#include#include原创 2016-07-13 10:20:13 · 749 阅读 · 0 评论 -
BZOJ4456 [Zjoi2016]旅行者
好神的分治做法我们把矩形顺着比较短的一边从中间切成两半,从这条中线上每个点做一次到这个矩形内每个点的dijkstra,把两个端点都在这个矩形里的询问用中线上每个点到两个端点的最短路更新,然后分治两半边复杂度分析:瞎YY一下我们知道这个算法每次更新答案要做比较小的一边的边长次dijkstra,所以当是一个正方形的时候分治的复杂度最高,而询问一定是传到底的时候复杂度最高因为每次切一半两边都原创 2016-06-22 14:21:02 · 2661 阅读 · 0 评论 -
BZOJ2216 [Poi2011]Lightning Conductor
考虑分j在i前边和后边分别算然后取max则f[i]=max(a[j]+sqrt(i-j))因为根号x函数差分之后单调不增(也就是说是凸函数),所以有决策单调性,注意是根号函数,double类型的,不是根号上取整函数!要最后再取整,过程中取整没法搞的,因为要是根号上取整的话虽然也是决策单调性,但是如果i有多个决策点都可行的话不一定所有决策点都满足单调性,然而我们无法判断哪个是有单调性的,所以原创 2016-09-01 16:31:19 · 956 阅读 · 0 评论 -
BZOJ4836 [Lydsy2017年4月月赛]二元运算
如果只是求x+y=c的对数可以直接fft预处理每个c的答案然后O(1)出解求x-y=c就把底下那个翻转一下然后fft但是他要求在x=y的时候是x-y=c还是考虑预处理每个c的答案然后O(1)出解那么我们就考虑分治,对于权值区间[l,r],对x在[l,mid],y在(mid,r]里的做一次fft,对x在(mid,r],y在[l,mid]里的做一次fft,这样就算出了跨mid的所有数对原创 2017-04-28 11:00:01 · 1367 阅读 · 0 评论