【PKUSC2018】最大前缀和
记录一下多没脑子。
考虑最大前缀是 \(S\),令 \(T=U-S\),显然可以对 \(S\) 和 \(T\) 分别算组合数再乘起来,\(T\) 的方案数就是任意一段前缀和都 \(\le 0\) 的方案数 \(g_T\),可以状压 dp 求出来,实际上 \(S\) 算方案数也是类似的,不过我太没脑子了,没想到。
考虑 \(S\) 内部的排列 \(f_S\),考虑减去不合法的方案数,不合法代表能选出 \(K<S\) 使得 \(sum_K\ge sum_S\),此时的方案数就是 \(f_K\times g_{S-K}\),子集卷积可以解决,时间复杂度 \(O(n^22^n)\)。
没脑子是赢不了的。