A slow week
- 牛客练习赛60 C
对于一个长度为(n)的字符串(s),计算有多少个长度为(k)的本质不同的子序列。
思路
(dp_{i,j})为前(i)个字符组成的字符串中长度为(j)的本质不同的子序列。则有:
[dp_{i,j}=dp_{i-1,j-1}+dp_{i-1,j}-dp[last_{s_{i}}-1][j-1]
]
其中 (last_{s_{i}}) 表示 (s_{i}) 前一次出现的位置。时间复杂度(O(n cdot k))
对于一个长度为(n)的字符串(s),计算有多少个长度为(k)的本质不同的子序列。
思路
(dp_{i,j})为前(i)个字符组成的字符串中长度为(j)的本质不同的子序列。则有:
其中 (last_{s_{i}}) 表示 (s_{i}) 前一次出现的位置。时间复杂度(O(n cdot k))