点分治我感觉是图论树部分比较考验脑力的一种题目了 POJ1741 题意:给一棵边带权树,问两点之间的距离小于等于K的点对有多少个 满足条件的点对有两种情况:两个点的路径横跨树根,两个点位于同一颗子树中 对于根节点进行一次dfs,求出deep,并将其从小到大排序 然后看一下calculate 如果我们 ...
分类:
其他好文 时间:
2018-08-11 23:24:26
阅读次数:
196
题目链接:http://poj.org/problem?id=1741 题意:求树上两点之间距离小于等于k的点对的数量 思路:点分治模板题,推荐一篇讲的非常好的博客:https://blog.csdn.net/qq_39553725/article/details/77542223 实现代码: ...
分类:
其他好文 时间:
2018-07-16 14:12:33
阅读次数:
162
树分治之点分治 先挖个坑,以后再填 Code ...
分类:
其他好文 时间:
2018-05-28 21:08:27
阅读次数:
117
题意:给一棵带边权的树,统计距离$\leq k$的点对数量 这个这么基础的东西居然鸽了那么久,我还是退役吧... 点分治用于统计满足某些性质的点对或路径,但实际上就是个大暴力 这题要求统计树上距离$\leq k$的点对数量,那么我们这样做: 对于当前节点$x$,遍历子树并算出$x$的所有后代到$x$ ...
分类:
其他好文 时间:
2018-04-27 12:12:46
阅读次数:
160
预备知识 树的重心:删去这个点后,森林中所有树节点的最大值最小 点分治过程 具体实现 例题 POJ 1741 同BZOJ 1468(下面为POJ1741代码) ...
分类:
其他好文 时间:
2018-04-21 19:27:59
阅读次数:
145
Tree bzoj-1468 poj-1741 题目大意:给你一颗n个点的树,求树上所有路径边权和不大于m的路径条数。 注释:$1\le n\le 4\cdot 10^4$,$1\le m \le 10^9$。 想法:GXZlegend给高一将点分治,去听了之后的第一道模板题。 我们对于一类树上统计 ...
分类:
其他好文 时间:
2018-04-10 21:46:51
阅读次数:
222
"题目链接 BZOJ1468" "POJ1741" 题意: 计算树上距离v路径权值)。 这样x的答案就计算完了,将这一过程记作Solve(x)。 考虑如何计算所有点。DFS的效率是和树深有关的。计算x v时,我们选取v子树上的重心作为下次Solve()的参数。 选取重心每次都会使树的节点个数减半,因 ...
分类:
其他好文 时间:
2018-03-17 12:07:57
阅读次数:
163
题面: 传送门 思路: 树上点对信息? 点分治啊! 照例处理联通块信息,然后再减掉儿子里面重复的 至于每个联通块的信息,就是把每个点到父亲的距离,小于k的放到一个数组里面,排个序,两头双指针扫一遍即可,O(nlogn) 再加上递归层数logn,总效率O(nlognlogn) Code: ...
分类:
其他好文 时间:
2018-02-21 16:34:53
阅读次数:
162
Description Give a tree with n vertices,each edge has a length(positive integer less than $1001$ ). Define $dist(u,v)=$The min distance between node $ ...
分类:
其他好文 时间:
2018-02-05 10:34:11
阅读次数:
114
【题意】给定带边权树,求两点距离<=k的点对数。n<=40000。 【算法】点分治 【题解】对于一个区域,选择其重心x作为根,则划分出来的每棵子树都是子区域,可以证明至多划分log n次(通过vis[]划分区域)。每次划分所有点都扫描一次,所以仅遍历的复杂度是O(n log n)。 对于本题,将点x ...
分类:
其他好文 时间:
2018-01-20 12:35:51
阅读次数:
213