树的直径
wzf_2000
这个作者很懒,什么都没留下…
展开
-
ZOJ 3820 Building Fire Stations
题意:在一棵树上找两个点,使其他每个点到这两个点的较大值中的最大值最小 思路:树的直径先来一发,然后找中点分树然后两棵树各找直径,两个点就是两个直径的中点(并不知道直接四等分点会怎么样,但显然不对,吧) 感觉细节还蛮多,不过代码很短。。(据说两个点不能是同一个点,反正我的似乎会自动屏蔽) 代码: #include #define N 200009 #define gc getchar()原创 2016-12-15 14:21:57 · 305 阅读 · 0 评论 -
【Codeforces418D】Big Problems for Organizers
先求出树的直径。 预处理出直径,用rmqrmq维护处直径上某一个区间点的子树内到直径两端点距离的最大值。 询问时,先找到x,yx,y两点所在的根,然后答案只能是一下两种: 1、直径两端点的答案 2、xx所在树到路径中点所在直径上的点的树中距xx的最大距离或者另一半的同样情况。#include <bits/stdc++.h> #define gc getchar() #define ll lo原创 2017-10-26 14:47:38 · 322 阅读 · 0 评论