Codeforces 1204E Natasha, Sasha and the Prefix Sums dp+卡特兰数

参考卡特兰数 — 计数的映射方法的伟大胜利题目链接:https://codeforces.com/contest/1204/problem/E题意:给出n,m,n个1和m个-1组成(comb[n+m][n]个)数列对所有数列的最大前缀和求和思路:首先,最大前缀和最小是0.动态规划状态:dp[n][m],有n个1,m个-1的数列最大前缀 总和状态转移:dp[...
摘要由CSDN通过智能技术生成

参考 卡特兰数 — 计数的映射方法的伟大胜利

题目链接:https://codeforces.com/contest/1204/problem/E

题意:

给出n,mn1m-1组成(comb[n+m][n]个)数列

对所有数列的最大前缀和求和

思路:

首先,最大前缀和最小是0.

动态规划

状态:dp[n][m],有n个1,m个-1的数列最大前缀 总和

状态转移:

dp[i][j]=dp[i-1][j]+C(i+j-1,i-1)+dp[i][j - 1]+(-1)*(C(i+j-1,j-1)-最大前缀和为0的数列个数)

C(i,j)为组合数

我们固定地认为每当新加入一个数的时候将该数插入序列的最前方,这种设定仍然保证了动规涵盖所有可能的排列。
如果我们插入的是一个1,不管先前的序列排列如何,最大prefix sum一定会加1,由于i-1个1,j个-1对应的序列有C(i+j−1,i−1)种排列方法,所以当前状态增加的贡献为C(i+j−1,i−1)。
如果我们插入的是一个-1ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值