点分治
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
【省选模拟】世界树(点分治)(单调队列)(启发式合并)
考场大力二分答案,把 ≥mid\ge mid≥mid 的设成 1,把 <mid<mid<mid 的设成 −1-1−1,若存在一条权值 ≥1\ge 1≥1 的长度 ∈[L,R]\in [L,R]∈[L,R] 的路径那么本次合法。这个东西点分没有办法容斥,只有考虑一个子树拼接前面的其它子树。这个东西是个单点修改区间加,所以考场我就码了个深度为下标的线段树,单修区查 maxm...原创 2020-02-17 16:47:12 · 150 阅读 · 0 评论 -
聪聪可可[点分治]
题目描述聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一...原创 2018-10-28 15:45:37 · 162 阅读 · 0 评论 -
点分治[模板][luogu3806]
传送门我们直接把可以的dis存在数组里,注意solve儿子时先剪掉贡献,具体看代码吧#include<bits/stdc++.h>#define N 40005using namespace std;int first[N],next[N],to[N],w[N],tot;int n,m,siz,vis[N],ret,K[N];int size[N],rt,Maxso...原创 2018-10-29 21:36:19 · 167 阅读 · 0 评论 -
Rase[点分治]
点分治,处理出每个点的dis与dep , 用ans[i]表示i可能作为答案然后按dis排序,两个指针扫到dis=k的就更新ans[dep] , 处理子树的时候减一下子树的贡献就可以了复杂度O(n*logn^2)#include<bits/stdc++.h>#define N 200005#define inf 0x3fffffffusing namespa...原创 2018-11-18 17:47:06 · 267 阅读 · 0 评论 -
[bzoj1758] 重建计划 [二分答案+点分治+单调队列]
传送门原文:https://blog.csdn.net/icefox_zhx/article/details/79090839首先求一个最优比率的东西,我们二分答案,转化成判定是否存在一条合法路径使得边权和≥0.然后这个东西我们点分治去做。每次计算过x的合法路径的最大值时,为了避免不合法,我们一个子树一个子树的做。我们处理出g[i],表示目前这棵子树深度为i的点的最大距离,tmp...原创 2019-03-04 21:51:46 · 220 阅读 · 0 评论