树的分治
文章平均质量分 77
yrleep
大学毕业不久,ios游戏自由开发者。
展开
-
poj 1741 Tree 树的分治
解法论文中有,就是把路径分成经过树根,和不经过树根两类,每次处理经过树根的,然后剩下的子树部分可以递归处理,如果每次选取树的重心,那么可以保证最多递归logn层。经过树根的先排序,然后O(n)的复杂度就能算出,那么每层的复杂度nlogn,最多递归logn层,总复杂度nlogn^2#include #include #include #include using namespace std;原创 2013-09-11 12:22:35 · 935 阅读 · 0 评论 -
poj 2114 Boatherds 树的分治
还是利用点的分治的办法来做,统计的办法不一样了,我的做法是排序并且标记每个点属于哪颗子树。 #include #include #include #include using namespace std; const int maxn=1e4+9; int head[maxn],lon,n,mm,m; struct { int next,to,w; }e[maxn<<1]; vo原创 2013-09-12 22:53:54 · 804 阅读 · 0 评论