考虑到是一颗树,所以先找出从0号点出发的最长链,假设长度为L。
如果L>=N,那么答案就是N+1
如果L<N,此时肯定发生了某些点走两次的情况,那么最优解就是在一些链上走2次,最后在最长链上走到底,这是显然的。因此答案是(N-L)/2+L+1
附上代码
1 |
|
考虑到是一颗树,所以先找出从0号点出发的最长链,假设长度为L。
如果L>=N,那么答案就是N+1
如果L<N,此时肯定发生了某些点走两次的情况,那么最优解就是在一些链上走2次,最后在最长链上走到底,这是显然的。因此答案是(N-L)/2+L+1
附上代码
1 | #include<stdio.h> |