随笔分类 - -----其他算法 3.树的分治
摘要:题目链接:hdu_4918_Query on the subtree 题意: 给出一颗n个点的树,每个点有一个权值,有两种操作,一种是将某个点的权值修改为v,另一种是查询距离点u不超过d的点的权值和。 题解: 这里可以去膜膜鸟神的博客。 简单来说就是对树的每个重心建立两个树状数组,然后对于每个点修改
阅读全文
摘要:题意: 给你一个有n个点的树,给定根,叫你找第k大的特殊链 。特殊的链的定义:u,v之间的路径,经过题给的根节点. 题解:(来自BC官方题解) 对于求第k大的问题,我们可以通过在外层套一个二分,将其转化为求不小于mid的有多少个的问题。 接下来我们讨论如何求树上有多少条折链的长度不小于k。 我们考虑
阅读全文
摘要:题目链接:hdu_5314_Happy King 题意: 给出一颗n个结点的树,点上有权值; 求点对(x,y)满足x!=y且x到y的路径上最大值与最小值的差<=D; 题解: 还是树的点分治,在统计答案的时候先按到根的最小值排序,然后用最大值减D去找有多少个满足答案。 1 #include<bits/
阅读全文
摘要:题目链接:poj1741_Tree 题意: 给你一颗n个节点的树,每条边有一个值,问有多少点对(u,v),满足u->v的最短路径小于k。 题解: 典型的树的分治,板子题。 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #
阅读全文

浙公网安备 33010602011771号