摘要: https://www.luogu.org/problemnew/show/P3398 题意简单概括一下就是求树上两条路径是否相交; 有这样一个性质: if相交,则必有lca(a,b) 在路径c <-> d 上or lca(c,d) 在路径a <-> b 上; 接下来就是这样一个问题: 怎样判断一个 阅读全文
posted @ 2019-02-22 15:59 陈星卿 阅读(159) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P1967 由题可知,我们走的路的边应尽可能大,所以通过$kruscal$建最大生成树的图,再树上倍增,注意可能有多棵树; 最开始的写法之所以是错误的,是因为会多求一段,而我们只需要求到LCA就行; 阅读全文
posted @ 2019-02-22 14:45 陈星卿 阅读(181) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P3258 注意开始和最后结尾 阅读全文
posted @ 2019-02-22 10:43 陈星卿 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 由题可知,我们要使最长的路径尽可能小,那么就二分最长的路径,把路径按升序排列,使其具有单调性, 然后把所有长度>mid的路径处理出来,进行树上差分,处理出这些路径都经过的最大的边,if maxpath - maxedge > mid then return false; 阅读全文
posted @ 2019-02-22 10:39 陈星卿 阅读(162) 评论(0) 推荐(0) 编辑