题意
对方从1~n里面选一个数字,然后我来猜,每次猜后,对方会告诉我是大了,小了,还是正确。假如我猜 x x x,猜错的的话要付给他 x x x元前,问我得钱包里至少放多少钱才能保证我能猜到他的数字。
O(n^3) 解法
这个题 O ( n 3 ) O(n^3) O(n3)解法是容易想到的,状态转移方程如下:
f ( a , b ) = min a ≤ k ≤ b ( max { f ( a , k − 1 ) , f ( k + 1 , b ) } + k ) . f(a,b)=\min_{a\le k\le b}\Big(\max\big\{ f(a,k-1),f(k+1,b)\big\}+k\Big)\ . f(a,b)=a≤k≤bmin(max{
f(a,k−1),f(k+1,b)}+k) .
这里 f ( a , b ) f(a, b) f(a,b)代表正确数字在区间 [ a , b ] [a, b] [