思路:
求长度为k的字符串中不含 ‘11’ 子串的字符串的个数dp[k],此时需要分两种情况:
(1)当第 k 位为 0 时,不含 ‘11’子串的个数为dp[k - 1];
(2)当第 k 位为 1 时,第 k - 1 位一定为 0, 则此时不含 ‘11’子串的个数为dp[k - 2];
#include<iostream>
using namespace std;
int main()
{
int n;
int m;
cin>>n;
while(n--)
{
int dp[42];
int i;
cin>>m;
dp[2]=3;
dp[3]=5;
for(i=4;i<=m;i++)
dp[i]=dp[i-1]+dp[i-2];
cout<<dp[m]<<endl;
}
return 0;
}
01串
最新推荐文章于 2023-02-03 14:20:13 发布