
动态点分治
stargazer.
夜を穿つの
展开
-
【洛谷P3345】【ZJOI2015】—幻想乡战略游戏(动态点分治)
传送门由于基础的求带权重心都是O(n)O(n)O(n)的考虑优化,考虑到以uuu为根的树如果重心在儿子vvv的子树,那么显然以vvv为补给站也肯定会比uuu优那么我们可以在树上二分,每次看带权重心在哪颗子树暴力跳多次询问可以点分树来解决二分考虑具体实现我们记录一个dis1dis1dis1表示点分树中uuu的子树到uuu的贡献dis2dis2dis2表示uuu对点分树的父亲的贡献...原创 2019-02-16 09:08:17 · 245 阅读 · 0 评论 -
【BZOJ4012】【HNOI2015】—开店(动态点分治)
传送门感觉和幻想乡那道题差别不是很大每一层排序后用一个数据结构来维护因为没有修改直接每个点维护子树信息排序后每次询问二分前缀和就可以了记录一下每个点自己的答案和对父亲的贡献相减一下就可以了具体可以参考代码#include<bits/stdc++.h>using namespace std;#define ll long long#define re registe...原创 2019-03-30 19:52:24 · 130 阅读 · 0 评论 -
【BZOJ3730】—震波(动态点分治)
传送门珍爱生命,远离动态点分治显然对于每一个分支中心维护一个BitBitBit,统计深度为iii的所有点的valvalval之和每次暴力跳fafafa统计自己的答案减去对父亲的贡献主要在于如何维护一个BitBitBit,暴力建显然是不可能的空间开不下我们可以利用vectorvectorvector的assignassignassign动态开点就好了(主要是不会用new in...原创 2019-04-02 20:22:11 · 201 阅读 · 0 评论 -
【BZOJ4372】—烁烁的游戏(动态点分治)
传送门动态点分治模板题结果点分树建挂了。。。。#include<bits/stdc++.h>using namespace std;const int RLEN=1<<20|1;inline char gc(){ static char ibuf[RLEN],*ib,*ob; (ob==ib)&&(ob=(ib=ibuf)+fre...原创 2019-09-17 18:08:02 · 205 阅读 · 0 评论