
点分治
文章平均质量分 81
WorldWide_D
这个作者很懒,什么都没留下…
展开
-
【HNOI2015】开店(shop)
题目大意给出一个n个点的二叉树。每个点、每条边都有一个权值。接下来Q个询问,每次询问所有权值为l..r之间的点到点u的最短距离之和。 题目强制在线Data Constraintn≤150000 Q≤200000 点权为非负整数且最大不超过10910^9LimitsTime Limits: 7s Memory Limits: 512MB分析这种题显然可以用点剖做。 现在有一个问题:怎样原创 2016-05-18 12:45:20 · 989 阅读 · 0 评论 -
【GDOI 2016 Day2】第三题 机密网络
DescriptionInputOutputSample InputSample OutputData Constraint分析第2问其实没有什么特殊的地方,所以这里只讲第1问的做法,然后第2问的思路也是一样的。对于这种环套树的问题,可以考虑先删去环上的一条边,这样它就变成了一棵树,然后统计树上的答案,最后加上必须通过删去的边的答案。树上的做法这类问题很容易联想到点剖。 对于当前一个根为x的子树,原创 2016-05-23 19:52:08 · 534 阅读 · 0 评论 -
[Codeforces150E]Freezing with Style
题目大意给你一个n个节点的树,每条边有一个美丽值c[i],求树上一条长度在l..r范围内的简单路径,使得路径上美丽值的中位数最大。 这里的中位数定义为: 设路径长度为m,那么把路径上的边的美丽值升序排序,依次为a[0],a[1],a[2]...a[m−1]a[0],a[1],a[2]...a[m-1] 那么中位数就是a[⌊x⌋]a[\lfloor_x\rfloor] For example,原创 2016-06-29 18:36:52 · 679 阅读 · 0 评论 -
[51nod 1297]管理二叉树
题目大意给定一个n的排列,用它建出二叉搜索树。输出每次插入后所有节点两两之间距离和。n≤100000分析考虑离线做。首先把这棵树建出来。建树可以O(n),具体点:可以发现,插入一个值x时,它一定是之前已经插入的数中,和它相邻的两个数中后插入的数值儿子。 比如:4 7 3 1 8 2 6 5。1是3的左儿子,2是1的右儿子,6是8的左儿子。建出树之后,把排列中的数按顺序放进来。假设知道了前i-1个数原创 2017-01-16 16:25:58 · 501 阅读 · 0 评论