摘要: • 通过 K-D tree 和一个优先队列,可以查询距离一个钦定点第 K 远的点。 • 具体操作看起来似乎比较暴力。 1. 首先将 K 个 “ 空 ” 的值存入队列。 2. 暴力 dfs K-D tree 更新队列。 • 所有点对中的第 K 远点对显然只需要将队列全局化。 P2093 [国家集训队] 阅读全文
posted @ 2019-02-25 22:19 Hevix 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 题目 • 很容易想到分块。 • 类似于区间众数的操作。 • 首先预处理出两个数组: 1. f 二维数组表示两个块为左右边界的序列的答案。 2. s 二维数组处理出从第一个块到某一个块之间每 个数出现的次数。 • 对于询问其实和预处理 f 数组的做法差不多。 1 #include<bits/stdc+ 阅读全文
posted @ 2019-02-24 21:39 Hevix 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段。记第 i 条被插入的线段的标号为 i 2.给定一个数 k,询问与直线 x = k 相交的线段中,交点最靠上的线段的编号。 • 沿用线段树的一般套路,保存的线段信息为线段的表达式。 • 更新线段的过程: 1.在线段树中找到该线段对应的区间 阅读全文
posted @ 2019-02-24 12:07 Hevix 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 启发式合并是对集合合并类问题的一种高效处理方式。 • 通常启发式合并优化的是合并多个相同数据结构的时间,通过暴力的合并来 将两个相同的数据结构合并,从而使得维护的零散信息(性质)逐渐合一。 • 举个十分简单的例子:起初有 n 个数组,且每个数组有且仅有 1 个数,接下 来有 n-1 个指令,需要你每 阅读全文
posted @ 2019-02-24 11:29 Hevix 阅读(140) 评论(0) 推荐(0) 编辑
摘要: P3834 【模板】可持久化线段树 1(主席树) 静态区间第k小。 主席树模板题 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,x,y,k; 4 struct node 5 { 6 int l,r,sum; 7 }num[340 阅读全文
posted @ 2019-02-24 10:54 Hevix 阅读(836) 评论(1) 推荐(0) 编辑
摘要: 题面 将树上的路径包含问题通过dfs序转换为双关键字区间包含问题, 进而转换为区间覆盖类问题。 由此,我们可以通过二分得出每一个询问的答案。 由于有多次询问,故只需要整体二分即可。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,p, 阅读全文
posted @ 2019-02-20 19:27 Hevix 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题面 作为一道经典的点分治题目,此题能很好的考察对点分治的运用。 个人认为点分治的本质在于:对于树上近乎n2 的路径询问,通过有效的 划分,使之能在稳定的时间内通过 存储信息——获取信息 的经典方式来求 出答案。 由此看出点分治的关键在于存储信息与获取信息的方式。 点分治的模板套上之后我们只需要考虑 阅读全文
posted @ 2019-02-20 13:19 Hevix 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目描述 白云和白兔想占领一棵树。白云列举了游戏玩法:∙ 首先,白云任意选择一个结点𝑘,把这个结点占领,其它结点都未本占领。 每一轮,白云可以选择若干个已经被占领的点,然后分别从每个点出发,找一条出边,把到达的结点占领。∙ 当所有结点都被占领时游戏结束。 白兔想知道,选择一个最优的𝑘,白云最少几 阅读全文
posted @ 2019-02-15 17:06 Hevix 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题面 • get到一种 hash 乱搞。 • 考虑题目要求如何在 hash 值中得以体现。 • 为每个数赋上一个 hash 值,使得同一类数的 hash 值为零。 • 那么满足要求的序列的 hash 值之和一定为零。 1 #include<bits/stdc++.h> 2 #define ll un 阅读全文
posted @ 2019-02-15 16:30 Hevix 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题面 • 提一下静态区间第k小的nlog2n的做法: 1. 建关于排名的主席树(按排名顺序建树)。 2. 二分答案。 • 这样做静态区间第k小的虽然有些ZZ,但它的意义在于将线段树 维护的对象改变了。 1 #include<bits/stdc++.h> 2 using namespace std; 阅读全文
posted @ 2019-02-14 18:17 Hevix 阅读(155) 评论(0) 推荐(0) 编辑