#include<cstdio>
#include<cstring>
#define MOD 1000000007
using namespace std;
int dp[1010][1010],sum[1010][1010];
int main()
{
char str[10000];
while(~scanf("%s",str+1))
{
int len=strlen(str+1)+1;
dp[1][1]=sum[1][1]=1;
for(int i=2;i<=len;i++)
for(int j=1;j<=i;j++)
{
if(str[i-1]=='I')
dp[i][j]=sum[i-1][j-1];
else if(str[i-1]=='D')
dp[i][j]=(sum[i-1][i-1]-sum[i-1][j-1]+MOD)%MOD;
else
dp[i][j]=sum[i-1][i-1];
sum[i][j]=(sum[i][j-1]+dp[i][j])%MOD;
}
printf("%d\n",sum[len][len]);
}
}
hdu 4055 DP
最新推荐文章于 2018-04-12 16:10:34 发布