LG 3304 [SDOI2013]直径

zcmimi at 
查看原题'" class='mdui-btn mdui-btn-raised mdui-ripple'>点击加载点击跳转首先两次 dfs 找出任意一条直径设直径为序列$A$,$L_i$为点$i$到直径左端的距离,$R_i$为点$i$为$i$到直径右端的距离可以发现这条直径把树分割成了若干棵子树,直径上每个点对应一颗子树设$mxd_i$为$i$点对应子树的最大深度从左到右枚举,直到$mxd_i<L_i$,得到$l$从右到左枚举,直到$mxd_i<R_i$,得到$r$序列$A$中$l$到$r$之间的点都是必须经过的点……