树的分治
hqwhqwhq
有梦想就不累
展开
-
poj_1741——树的分治
看了网上各种大神的树的分治的模板,然后自己敲了一个。。。直接上代码了,晚上再写一个学习笔记, 丧心病狂的poj,上次一直跪在vector上,这次觉得不用vector写了。。。 #include #include #include #include #include #include #include #define ll long long #define INF 1<<30 u原创 2015-04-15 18:00:39 · 364 阅读 · 0 评论 -
POJ 1987 Distance Statistics (树的分治)
这次整理模板整理到分治,然后就补了一道分治的题目: 这题和POJ 1741一样的题。 上次写树的分治,感觉是一种很厉害的数据结构,现在看来,其实是很简单的一种分治思想而已。 为什么每次都要找重心?因为这样每一个小子树的节点数<=n/2<=n/2所以递归计算的层数最多是o(logn),每一层计算合法点对个数,需要dfs一当前子树的所有结点o(n),计算所有节点到根的距离,然后按距离长度排序o(n原创 2015-10-13 21:24:16 · 580 阅读 · 0 评论 -
CodeForces 715C Digit Tree (树的分治)
分析:求所有满足情况的链的个数,这个时候很容易想到树的分治,每次求经过rt的所有满足条件的链的个数。由于从rt开始的链可以进行合并。所有直接暴力所有子树就可以了。复杂度就是o(nlogn)o(nlogn)。代码:#include <bits/stdc++.h>#define LL long long #define FOR(i,x,y) for(int i = x;i < y;i ++) #def原创 2016-09-22 23:48:40 · 956 阅读 · 0 评论