树分治
文章平均质量分 55
空灰冰魂
=NULL
展开
-
【POJ1987】Distance Statistics ==【POJ1741】 树分治
广告:#include <stdio.h>int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44307489");}题意&题解http://blog.csdn.net/vmurder/article/details/44302921代码:(同一道题)#in原创 2015-03-16 16:00:26 · 1368 阅读 · 0 评论 -
【POJ2114】Boatherds 树分治
题意:求是否有长度为K的路径。 每组数据 N,表示树有N个点。 然后N行,每行若干个数对(a,b)(a,b),其中第i行时表示i到a有一条长为b的无向边。输入到0截止。 然后若干个数表示K,每个数输出下。 到0为止。然后数据的N也是到0为止。 存在 puts("AYE"); 否则 puts("NAY");每组数据最后输出一个dot,就是 .题解:三倍经验题,原创 2015-03-16 16:35:27 · 1259 阅读 · 0 评论 -
【POJ1741】Tree 树分治 模板咯?
题意:给你一棵无根树,求有多少点对之间距离题解:树分治。 然后对于一个重心X,我们把它的所有子树中的所有点存到结构体数组中。 结构体中存距离和子树编号。 第一遍sort,我们双指针扫哪些点对符合要求。 第二遍sort,我们把同一子树中还符合要求的点对数目删掉。 sort是O(nlogn)O(nlogn),处理是O(n)O(n)。 然后分治logn层,总时间复杂度O(nl原创 2015-03-16 11:19:59 · 2738 阅读 · 0 评论 -
【BZOJ2152】聪聪可可 树分治
题解:裸的处理树上路径的树分治。代码:#include #include #include #include #define N 20100#define V e[i].v#define inf 0x3f3f3f3fusing namespace std;struct Eli{ int v,len,next;}e[N1];int head[N],cnt原创 2015-03-18 19:47:55 · 1442 阅读 · 0 评论 -
【BZOJ1758】【Wc2010】重建计划 分数规划+树分治单调队列check
题解:首先比较显然会想到分数规划模型。 不太好想,先放过。我们树分治处理经过每个点的路径。 然后对于在[L,R][L,R]区间内的每个长度记录最长距离。 然后每棵子树跟之前记录的数组处理一下,算出当前这棵子树中点为一端点,经过根节点(重心)的最优答案,然后再更新记录最长距离的数组。貌似很科学,但是这个更新答案的过程,实际上是O(n2)O(n^2)的,并不能接受。所以就有了下述原创 2015-03-18 18:12:53 · 2839 阅读 · 1 评论