这题朴素的O(nk n) 的记忆化搜索方法是很容易的,
但是关键就是将其中一层n的循环有效的优化成logn。
原始的情况是对
[t in [1,n]
]
的每一个(t),计算
[min(max(f1(t), f2(t)))
]
想到这直接的想法肯定就是来个循环,遍历每一个关于(t)的(f1)和(f2),最后找到结果。
- 但是这题巧妙的地方就在于,(f1)和(f2)是有规律的,一个单调递增,另一个单调递减,如下图所示
他们两个求最大最小,必然是在二者之差绝对值最小的时候取到。
而二者之差,是单调的,于是二分搜索就可以用了,至此就完成了一个O(nk logn)的解法,直接AC