HDU Count 101 解题报告

来源:互联网 发布:中广核 知乎 编辑:程序博客网 时间:2024/06/06 14:23

题目意思:
找出所有不含有“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

0 0