【笔记】二分答案的两种形式
壹
\(f(x_1,x_2,\dots,x_n)=(a_1,a_2,\dots,a_n)\),要让 \(\max\{a_1,a_2,\dots,a_n\}\) 最小或 \(\min\{a_1,a_2,\dots,a_n\}\) 最大。
如果直接 DP 考虑让每一个 \(a_i\) 都尽量小,是不满足最优子结构的。如果记上 \(\max\{a_1,a_2,\dots,a_n\}\) 进行 DP,复杂度会爆炸。
二分答案 \(X\),DP 让每一个 \(a_i\) 尽量小,但是在 DP 的过程中让不满足 \(a_i\le X\) 的状态不进行转移。子结构间互不影响,转移到父结构的子结构都满足 \(a_i\le X\) 的限制,DP 正确性就有保证了。
我们刚才讲的是 DP,要 DP 的话转移关系肯定是线性的,树形 DP 或者就最普通的 1D/1D DP 都算。但是像 Nudist Beach 这道题,巧妙地考虑在最优情况下也取不到的点,然后 BFS 扩展删点。
贰
求满足函数 \(f(x_1,x_2,\dots,x_n,T)\ge X\) 成立的 \(T\) 的最小值。
\(T\) 的值域极大,状态记下 \(T\) 就没法 DP。如果二分答案 \(T\),限制就变成了判断 \(f_T(x_1,x_2,\dots,x_n)\ge X\) 是否成立。