ARC 117 - Miracle Tree
ARC 117 - Miracle Tree
话说我只能蒙结论。。。
打表或者理性分析可以发现一些性质
1.$\nexists E_i=E_j$
2.如果确定$E_i$从小到大的顺序$P_i$,就能确定一组最优的$E_i$
(但是对于平凡的$P_i$,这个过程会极其恶心,因此考虑特殊化$P_i$)
3.设$\displaystyle f(P)=\sum_{i=2}^n dis(P_{i-1},P_i)$,即遍历排列的距离和
则$\max\{E_i\}\ge \min\{f(P)\}+1$
显然
由此确定了一个下界,接下来将说明可以取到下界
1.对于一个排列$P_{i}$,如果$P_i$是一组$\text{dfs}$序,那么满足$\max\{E_i\}=f(P)+1$ (容易模拟发现)
2.$\min\{f(P)\}$在$(P_1,P_n)$恰好为一条直径时取到,显然存在这样一组$\text{dfs}$序满足要求
由此确定了答案$P$可以是任何一组以某一条直径两个端点为$P_1,P_n$的$\text{dfs}$序
容易给出一个合法解,代码实现极为暴力
1 | const int N=2e5+10,INF=1e9+10; |