
数据结构-KDT
Endless_Way
这个作者很懒,什么都没留下…
展开
-
BZOJ 4537 [Hnoi2016]最小公倍数
暴力的做法是把所有两维边权不大于询问的边用并查集做一下,查询两点是否连通以及连通块内有没有询问的值。 这是二维关系,显然我们会想到对第一维排序,动态地维护第二维。如果每一次都重建一下是不科学的,我们要维护图的连通性或者减少重建。二维关系不资磁线段树分治,所以不太好维护图的连通性,考虑减少重建次数,那就分块重建……把边分成根号块,每一次处理第一维在块内的询问。对于块前的边按第二维单调扫,块内暴力查。原创 2017-03-25 00:13:56 · 386 阅读 · 0 评论 -
BZOJ 3616 War
KD树+bitset对于一个联盟s,设会打它的个数为t,那它对答案的贡献就是 (n−tn)m(\frac{n-t}{n})^m考虑怎么得到t。对于一个点,我们希望在它能打到的所有点上面打上这个点的标记。直接打标记不行,考虑用KD树即可。然后联盟里的所有点用bitset或起来即可得到所有能打到这个联盟的点。题目保证了坐标随机,因此KD树的复杂度是期望 n‾√\sqrt n 的。#include<cma原创 2017-04-27 23:25:33 · 329 阅读 · 0 评论 -
BZOJ 2648 SJY摆棋子
kd-tree kd-tree不重构居然能过?23333。。。 就当屯一个模板吧。 #include #include #define N 1000005 #define cmin(u,v) (u)>(v)?(u)=(v):0 #define cmax(u,v) (u) using namespace std; namespace ziqian { int in() {原创 2016-12-18 15:18:04 · 448 阅读 · 0 评论