题目:https://vjudge.net/contest/307753#problem/D 题意:给你一棵树,让你求出一个点,让他的最大子树的节点数尽量小 思路:最大子树节点数尽量小,一看就是树的重心, 然后随便套个原来的点分治模板即可 ...
分类:
其他好文 时间:
2019-08-13 22:35:44
阅读次数:
86
关于树的重心的一些性质都没有理解的很好 在此总结一下。 树的重心的应用 点分治 点分树 动态维护树的重心等等。 关于点分治的复杂度一论 这个其实是套用了 分治的思想 或者是CDQ 的思想 对区间不断的进行递归分治,这个分治可以很快的分出断点mid 而在树上我们就无法快速得出这个mid了。 分治区间的 ...
分类:
其他好文 时间:
2019-08-13 13:58:40
阅读次数:
90
一、rmq问题 1.st表 2.线段树 3.树状数组 二、lca 三、基本数据结构 1.栈 2.队列 3.单调栈 4.链表 5.stl 6.并查集 7.堆/优先队列 四、分治 1.点分治 2.边分治 3.树链剖分 4.基于询问的分治 5.cdq分治 五、其他 1.可持久化线段树 2.KD-tree ...
分类:
其他好文 时间:
2019-08-11 17:27:04
阅读次数:
70
一、搜索 1.迭代加深 2.估价函数 3.IDA* 二、贪心 三、二分 四、分治 1.序列分治 2.CDQ 分治 3.点分治 4.边分治 5.动态点分治 6.动态边分治 五、倍增 1.快速幂 2.矩阵快速幂 3.ST 表 4.LCA 5.其他 ...
分类:
编程语言 时间:
2019-08-11 10:35:19
阅读次数:
89
考虑点分治,将询问离线后计算重心到每一个点的线性基,然后再询问重心到每一个点的线性基,时间复杂度为$o(3600q)$,可以过(然而太菜的我写了倍增维护线性基,震惊于倍增和线性基常数之小) 1 #include<bits/stdc++.h> 2 using namespace std; 3 #def ...
分类:
其他好文 时间:
2019-08-10 09:32:28
阅读次数:
82
点分治 这道题还有很多种其它写法,什么长链剖分啦,启发式合并啦等等。 首先,我们可以把点对$(u,v)$分成两类: 1.u到v的路径是一条链 2.u到v的路径不是一条链(废话) 对于第一类,显然$f(u,v)$就是链的长度,可以单独统计 对于第二类,就要在点分治上搞了 我们可以先计算出为d的倍数的点 ...
分类:
其他好文 时间:
2019-08-09 20:00:05
阅读次数:
84
火苗静静的将世界荡涤。 ??? 毁灭它,点亮它。 只发光不放热? 那是虚无, ……还有你我的遗言。 考试过程。 通看三题。 额嗯嗯,没想法。 T1写个暴力吧。 T2好像挺简单。 T3好像还行?? T1 写了个$\Theta(N^3)$的暴力。 愉快的一遍过样例。 结果炸了。 T2 看错题了…… 写完 ...
分类:
其他好文 时间:
2019-08-09 13:30:06
阅读次数:
108
仍然是我自己的做法(不要走,这可是我目前见过的时间最快的了,只有17150ms) 一开始没仔细看题我想成了所谓翻转坐标系是因为坐标有正有负,整了一堆没用的(这句话好像在哪儿听过~) 然后发现x,y均为非负整数,然后就按照学长讲的思路翻转坐标系求四遍CDQ,但是我打出了一遍CDQ的方法(虽说里边算是夹 ...
分类:
其他好文 时间:
2019-07-27 09:19:22
阅读次数:
70
题目: "P4930「FJ2014集训」采药人的路径" 思路: 这篇不算题解,是让自己复习的,什么都没说清楚。 很久没有写点分治了,以前为了赶课件学的太急,板子都没打对就照着题解写题,导致学得很不扎实。 这道题差不多是在郭老师的指导下一点点凑出来的,还是没能自己完整写出一道题,惭愧。 这道题大意是: ...
分类:
其他好文 时间:
2019-07-26 21:09:34
阅读次数:
127
```cpp #include #include #include #include #include #define R(a,b,c) for(register int a = (b); a = (c); -- a) #define Max(a,b) ((a) > (b) ? (a) : (b))... ...
分类:
其他好文 时间:
2019-07-16 12:20:24
阅读次数:
63