例如nunhehhehahaahahahahahahaahaahahahahha中nunhehheh的个数
思路:dp[i][j]表示原字符串的前i个字符中含有子序列前j个字符组成的序列的个数,然后我们用滚动数组减少空间。
#include <bits/stdc++.h>
#define ll long long
ll dp[10];
char str[100]="nunhehhehahaahahahahahahaahaahahahahha";
char sstr[100] = "nunhehheh";
int main()
{
dp[0]=1;
for(int i = 0;i < len;i++)
{
ll t = dp[9];
for(int j = 9;j>=1;j--)
{
if(str[i] == sstr[j-1])
{
dp[j] = (dp[j] + dp[j-1]);
}
}
}
}
printf("%d\n",dp[9]);
return 0;
例题1006 Nun Heh Heh Aaaaaaaaaaa
博客2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)