ec final2018(gym102056) E(关于+1-1数列的前缀>=某个值的问题)

来源:ec final2018(gym102056) E,化简之后的问题

问题:给出n个位置,每个位置可以填+1-1,求多少种方案使得前缀和>=x(不要求最后为0)

一般来说可以枚举最后的和(最终位置),然后容斥变成①任意-②必定穿过x碰到x-1这条线,画出折线然后翻折第一次碰到x-1之后的部分,这样和原问题②一一对应

更一般的情况:n个位置上已经有若干位置确定,那么可以从后往前dp:
\(f[i,j]\)表示考虑完i~n的,当前形成的i~n这一段的前缀最小值为j,
转移就在折线的头部加一个新的↗/↘,然后j->min(j±1,0)

这样是n^2dp,可以处理更一般的情况

posted @ 2023-02-15 11:39  gmh77  阅读(32)  评论(0编辑  收藏  举报