本题的 checker 似乎有点问题,我瞪了一下错误信息发现其 ans 小的离谱肯定是错的,这个做法应该是对的。
首先因为 4 个 sub 都相对比较割裂,于是考虑挨个求解。
Sub 1
因为 \(n\) 很小,所以可以直接考虑子集 dp。
具体来说,记 \(f_s\) 表示已经为 \(s\) 中的元素分好组的最小代价。
转移可以考虑枚举新的一组 \(t\):\(f_s = \max\{g_t, f_{s - t}\}\),其中 \(g_t\) 代表把 \(t\) 中的元素分在一组的 \(\max d\) 的最小值。
\(f\) 可以在 \(\mathcal{O}(3^n)\) 的复杂度内求出,\(g\) 可以在 \(\mathcal{O}(2^nn)\) 的复杂度内求出。