一种新奇做法
查看原帖
一种新奇做法
290959
聊机楼主2024/3/9 11:27

先声明:这不是讨论区题解,这是一种我只能证明正确性但无法证明时间复杂度正确的做法。

提交记录

大致思路:首先我们对于 Shido 要遇到的对手要让他的值最小,但是如果我们硬递归子树找最小值可能找到的不是真的最小值。

比如我们递归左右子树,两个能取到的最小值分别是 a1,a2。假定 a1<a2,如果 a1+m>=a2 ,显然 a1 更优,但是如果 a1+m<a2 ,a2也不一定就是最好的,如果我们能在左子树里找到一个在区间 [a2-m,a2]以内的最小值,那就可以让答案变的更小。

于是我就让这个函数再递归一次,同时在递归函数中增加一个参数 mn,来控制下限。

正确性可以保证,但复杂度显然炸了,而“加强数据”中最慢的点只跑了 70ms,有没有什么办法能算出来这个做法的复杂度。

2024/3/9 11:27
加载中...