
分治
jokerwyt
这个作者很懒,什么都没留下…
展开
-
初识点剖(基于点的树上分治)
有一类问题,是关于树上路径,树上点对,树上XX…之类的,我们可以考虑运用分治算法. Description 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K Input N(n<=40000) 接下来n-1行边描述边,按照题目中写的输入 接下来是k Output 一行,有多少对点之间的距离小于等于k如果说维护的是路径,那么这条路径有三原创 2016-08-20 09:38:34 · 892 阅读 · 0 评论 -
jzoj4841 平衡的子集
问题描述有n个数,问有多少种从其中选若干个数的合法方案。 一个合法方案是指,选出来的数可以分为两组,使得两组之和相等。 对于100%的数据满足:2<=N<=20,1<=a[i]<=100000000解一开始还理解错题意了(2次),一开始以为是所有数都要分组,然后以为问的是有多少种分组方案使得和相等。看到20想到的就是状压和折半搜索(Alan给我们口胡的那个东西)。 先把20个数分成两半。 我原创 2016-12-05 18:16:17 · 561 阅读 · 0 评论 -
jzoj3872 圣诞树 [转化问题+推式子、点分治]
给定一棵树与k,求树中(i,j)与(j,k)与(i,k)都满足或都不满足g(l,r)=x(mody)g(l,r)=x(mod y) g(l,r)=Z0×k0+Z1×k1+…+Z(L−1)×k(L−1))g(l,r)=Z0 × k^0 + Z1 × k^1 + … + Z(L-1) × k^(L-1)) 每个点都有一个权值V[x],Z[i]表示的是L到R的简单路径上的点首先,先抽象问题。原创 2017-01-17 21:38:05 · 675 阅读 · 0 评论 -
jzoj100048 【NOIP2017提高A组模拟7.14】紧急撤离 (网格图,分治,bitSet)
题意给出一个n*m <=500*500的网格图,有一些点有障碍。从一个点只能向下,向右走,询问q<=6∗105q<=6*10^5:(a,b)是否能到达(c,d)。分析询问这么多,如果不是并查集的话一定是预处理了。 考虑直接做,对于每一个询问要nm的时间来暴力。 优化? 枚举一个中间点,然后向两边寻找。 如何配对询问? 将询问用边集数组之类的打到点上。再用O(q)时间询问。 这样我们就切原创 2017-07-14 20:19:44 · 743 阅读 · 0 评论 -
jzoj3329 【NOI2013模拟】树上的路径 (点分治,前K大问题)
题意给定一棵N个结点的树,结点用正整数1..N编号,每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路径上经过边的权值和,其中要求a<ba<ba原创 2018-07-11 19:43:05 · 996 阅读 · 0 评论 -
jzoj4033 【GCJ2009B】Min Perimeter (平面最小xx)
题面给你一个整数坐标的点集,询问点集中最小的三角形周长是多少。退化的三角形也是允许的(面积为0)。0&lt;n&lt;=1000000&lt;n&lt;=1000000原创 2018-07-12 20:12:24 · 180 阅读 · 0 评论 -
jzoj4388 【GDOI2016模拟3.15】染色 (idea, 数据结构毒瘤)
题意 n <= 1e5乍一看就是log2log2log^2idea也比较多的题好吧,一看操作,瞬间上cdq分治 + 虚树, 4k能写完+调完也是佩服自己。先说一个比较经典的做法然而并不需要这么麻烦,考虑u,v之间多算的距离,就是 2∗dis[lca]2∗dis[lca]2 * dis[lca]对于任意一个黑点x,将x到根的路径上标记 + 1 那么查询点y...原创 2018-07-19 21:15:33 · 316 阅读 · 0 评论