02 2016 档案

摘要:树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡. 处理处每个节点的孩子有几个,和树的大小就好了。 阅读全文
posted @ 2016-02-28 11:23 sweat123 阅读(229) 评论(0) 推荐(0)
摘要:设s-t是这棵树的直径,那么对于任意给予的一点,它能够到达的最远的点是s或者t。 这样我们可以通过2次bfs找到树的直径了。 阅读全文
posted @ 2016-02-28 10:36 sweat123 阅读(239) 评论(0) 推荐(0)
摘要:比较直接。 阅读全文
posted @ 2016-02-19 15:02 sweat123 阅读(161) 评论(0) 推荐(0)
摘要:比较直接的题目,入门一下。 阅读全文
posted @ 2016-02-10 23:54 sweat123 阅读(217) 评论(0) 推荐(0)
摘要:学习博客: http://noalgo.info/476.html 讲的很清楚! 对于一颗树,dfs遍历时,先向下遍历,并且用并查集维护当前节点和父节点的集合。这样如果关于当前节点(A)的关联节点(B)(及要求的最近祖先的另一个点)之前被访问过,那么 B可定已经属于一个集合,先前对于访问过的点,已经 阅读全文
posted @ 2016-02-10 23:53 sweat123 阅读(141) 评论(0) 推荐(0)
摘要:比较基本的操作。 阅读全文
posted @ 2016-02-04 15:59 sweat123 阅读(303) 评论(0) 推荐(0)
摘要:好题,错了不知道多少遍。这题其他几个操作都是比较经典的,多了一个最大子序列的。这时候对于当前的区间,最大子序列,可能使左区间的最值,可能是右区间的最值,也可能是整个区间的。所以维护lx[],rx[],mx[]。lx[rt] = max(lx[l],sum[l]+key[rt]+max(0,lx[r] 阅读全文
posted @ 2016-02-02 23:14 sweat123 阅读(286) 评论(0) 推荐(0)