题目意思:
找出所有不含有“101”子串的个数
这题可以用 DP。
用 DP[i]代表长度为 i 时的不含有“101”子串的个数。
观察可以发现,DP[i] = 2*DP[i-1] - 以“10”结尾的 DP[i-1]个数。
而 以“10”结尾的 DP[i-1]个数 是 以“0”结尾的 DP[i-1]个数 减去 以“0”结尾的 DP[i-2]个数。
任意一个 DP[i],以“0”结尾的个数有多少呢?有 DP[i-1]个。
所以最终的递推式是:
DP[i] = 2*DP[i-1] - (DP[i-2] - DP[i-3])
DP[0] = 0
DP[1] = 2
DP[2] = 4
DP[3] = 7
代码链接:HDU 3485

本文介绍了一种使用动态规划方法解决不含特定子串(例如101)的问题。通过定义DP[i]表示长度为i时不含特定子串的字符串数量,并给出了递推公式DP[i]=2*DP[i-1]-(DP[i-2]-DP[i-3]),最终实现了高效求解。
3474

被折叠的 条评论
为什么被折叠?



