Loading web-font TeX/Math/Italic

原题目链接

看到题目就想到了dfs+剪枝

然后就想到了dfs有问题

例如这组数据

1
2
3
4-9-12
| | |
2-4-10

从4开始,到10结束

dfs会走4 \to 2 \to 4 \to 10,答案为8

然而很明显走4 \to 9 \to 4 \to 10更优,答案为6

当然你加一大堆玄学优化也是可以搜出正确答案的

这里不再多讲,而是提供另一种思路:

二分

原题目链接

我们可以取两条线段的中点,若重合就让第二条线段的中点+1

Q:中点+1后不在线段上怎么办?

A:由于C++整数除法自动省略小数,也就是向下取整,若线段长度大于1,那么中点+1后一定不会超出线段,若线段长度为1,即l+1=r,那么\left\lfloor\dfrac{l+r}{2}\right\rfloor=l,所以中点+1=r,也不会超出线段,所以中点+1后无论如何都在线段上,符合题意


我的blog就这样在这样一个最深层偏僻角落里勉强存活了 2314 天 02 小时 14 分 32 秒


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 11389 次 。