码迷,mamicode.com
首页 > 其他好文 > 详细

计算一个序列有多少个不同的01子序列

时间:2017-11-12 01:03:04      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:字符   个数   转移   更新   序列   子序列   多少   不同的   不同   

每个01子序列要么以0结尾,要么以1结尾。

不如我们令这个0,1为序列中最后一个0,和最后一个1.这可以令转移唯一化。

dp[i][1]代表以前i个字符中最后一个1为结尾的不同子序列的个数,dp[i][0]代表以前i个字符中最后一个1为结尾的不同子序列的个数

则有若s[i]=1,则更新最后一个1的位置,dp[i][1]=dp[i-1][1]+dp[i-1][0]+1

而最后一个零位置保持不变。dp[i][0]=dp[i-1][0].

当s[i]=0时同理

计算一个序列有多少个不同的01子序列

标签:字符   个数   转移   更新   序列   子序列   多少   不同的   不同   

原文地址:http://www.cnblogs.com/qswg/p/7397813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!