点分治
forever_shi
但行好事,莫问前程;行你所行,无问西东!
展开
-
洛谷4886 快递员 点分治
题目链接 题意: 给你一棵n个点的树,有m个点对,你要在树上找一个点x,使得对于所有的点对(u,v),dis(x,u)+dis(x,v)最小,输出这个最小值。n,m<=100000 题解: 感觉之前点分治学得不好,所以最近想补一下。 这个题其实那道题想过点分治,但是好像并不满足分治常见的子问题结构,就没想好怎么处理。看了题解之后觉得还是挺妙的。 首先我们考虑暴力的话是枚举每一个点,然后以这个...原创 2018-12-23 21:29:12 · 182 阅读 · 0 评论 -
洛谷4149 BZO2599 IOI2011 race 点分治
题目链接 题意: 给你一棵nnn个点的树,边有边权,求树上长度为kkk的路径至少要经过几条边,如果没有符合条件的路径,输出-1。n&lt;=2e5,k&lt;=1e6n&lt;=2e5,k&lt;=1e6n<=2e5,k<=1e6 题解: 首先感谢DT_Kang的帮助!DT_Kang大佬帮我调了这个题,并且给我指出了我之前的点分治的复杂度都有问题,写的都...原创 2018-12-24 21:06:39 · 178 阅读 · 0 评论 -
洛谷4178 BZOJ1468 tree 点分治
题目链接 题意: 给你一棵nnn个点的树,求树上长度不超过kkk的路径数。n&lt;=40000n&lt;=40000n<=40000 题解: 一看到这种处理树上路径的问题,经常是往点分治方面去想。这个题我们考虑点分治,然后在每个分治重心处计算子树里路径对答案的贡献。计算的方法是,你先求出子树里的所有路径的长度,然后排序一遍,用一个类似双指针的东西扫一遍,对于每个左端点,合法...原创 2018-12-25 11:54:09 · 161 阅读 · 0 评论 -
洛谷4292 BZOJ1758 WC2010 重建计划 点分治 分数规划 单调队列 排序
题目链接 题意: 给你一棵nnn个点有边权的树,给你两个数[l,r][l,r][l,r],问你边的数量在[l,r][l,r][l,r]之间的平均值最大的链的平均值是多少。保证存在这样的链。n<=1e5n<=1e5n<=1e5。 题解: 这种平均值问题一看就是个分数规划,于是就去二分答案,设边权是xxx,当前二分的值是midmidmid,然后把边权转成x−midx-...原创 2019-04-01 16:27:19 · 151 阅读 · 0 评论 -
BZOJ1316 树上的询问 点分治
题目链接 题意: 给你一棵nnn个点带边权的树,有mmm次询问,每次问你树上是否存在一条长度为xxx的路径。n<=10000,m<=100,x<=1e6n<=10000,m<=100,x<=1e6n<=10000,m<=100,x<=1e6. 题解: 树上路径问题还是考虑用点分治。这个题让我发现我...原创 2019-04-02 08:45:35 · 194 阅读 · 0 评论 -
CF150E Freezing with Style 点分治 二分答案 单调队列 排序
题目链接 题意: 给你一棵nnn个点,边有边权的无根树,给你一个lll和一个rrr,让你求一条经过的边数在[l,r][l,r][l,r]之间的路径,使得将路径上所有边按照权值排名,排名在的中间的权值尽可能大,输出路径的两个端点。这里与数学上的中位数是有区别的,要求如果边数是奇数,那么就是数学上的中位数,如果是偶数,那么是排名在中间的相邻两个数较大的那一个,而不是平均值。n<=1e5n...原创 2019-04-03 08:57:08 · 295 阅读 · 0 评论