疑似新做法,求问正确性
查看原帖
疑似新做法,求问正确性
684254
Rain_chr楼主2024/7/23 15:03

简要说明一下我的做法:

先以当前小 Z 在的点 x 为根

  1. 如果 Youyou 在不同的子树

    x 不动

  2. 如果 Youyou 在同一个子树

    x 朝这个子树走一步

这样做的正确性我是这样想的:

对于情况 2,操作的正确性十分显然,所以只用证明为什么情况 1 时不动是最好的选择。

假设有两个 Youyou 在不同的子树,分别在 y,zy,z 两个点上。

如果 xx 朝 yy 走了一步,那么 dis(x,y)←dis(x,y)−2,dis(x,z)dis(x,y)\gets dis(x,y)-2,dis(x,z) 不变,先朝 yy 走再向 zz 走的代价是

⌈dis(x,y)2⌉+⌈dis(x,z)2⌉\lceil \frac{dis(x,y)}{2} \rceil+\lceil \frac{dis(x,z)}{2} \rceil

考虑另一种情况,xx 不动,其代价即为

min(dis(x,y),dis(x,z))+⌈max(dis(x,y),dis(x,z))−min(dis(x,y),dis(x,z))2⌉min(dis(x,y),dis(x,z))+\lceil \frac{max(dis(x,y),dis(x,z))-min(dis(x,y),dis(x,z))}{2} \rceil

如果 dis(x,y),dis(x,z)dis(x,y),dis(x,z) 均为奇数,那么不动的代价比动的代价小,否则代价一样,所以在情况 1 时不动是更优的。

由于在题解中并没有看见类似做法,所以想知道这样做法是否有问题。

2024/7/23 15:03
加载中...