
树的直径
文章平均质量分 89
空灰冰魂
=NULL
展开
-
【BZOJ2282】【Sdoi2011】消防 树的直径+双指针+单调队列 有一系列乱七八糟的证明
题解:首先表示这个代码是线性的,是怎么构造数据也卡不住的! 而网上普遍流行的那个二分的是基于直径长度dd的O(dlog2d)O(dlog_2 d)算法,一旦直径长点,然后数据范围大点,它就挂啦!诶我什么心态啊。算法:首先答案路径一定在某直径上[证明1,见文末],然后我们求出这个直径序列(任一直径即可[证明2,见文末]), 处理出一些数组: fif_i表示i是路径左端点时直径上原创 2015-03-25 20:57:01 · 2455 阅读 · 0 评论 -
【BZOJ1912】【Apio2010】巡逻 树上最长链(才不是树的直径呢)
题解:对于 k==0k==0 的情况: 我们发现遍历一棵树最后回到原点,那么对于所有的边,我们都是走过去,再走回来。 答案 (n−11)(n-1对于 k==1k==1 的情况 设每条边长度为1,然后树上找最长链,然后这条链走过去就不再一步步往回了,直接从链底连一条边去链顶,然后链中间连的那些点,直接走过去再走回来,它们那些边的答案是不变的。 答案 (n−11)−(链长度)+1(n-原创 2015-04-15 17:47:41 · 2977 阅读 · 3 评论