[PKUSC2018]最大前缀和

考虑到最大前缀和的等价条件:

前缀的真后缀全>=0
前缀的补集的前缀小于0

考虑记\(S(u)\)为子表示的元素的权值和。
\(f(u)\)为满足第一个条件的方案数,\(g(u)\)为满足第二个条件的方案数。

注意到是真子集,所以我们要考虑\(s(u)\)小于\(0\)的情形。
所以记\(f(u,0),f(u,1)\),一个为\(s(u) < 0,s(u) > 0\).

然后考虑\(f\)从后往前加,\(g\)从前往后加入,计算方案即可。

posted @ 2021-08-19 16:23  fhq_treap  阅读(48)  评论(0编辑  收藏  举报