链接:https://ac.nowcoder.com/acm/contest/20960/1013 来源:牛客网

题目描述

此时相望不相闻,愿逐月华流照君。

一纸情书,到底蕴含了多少倍的爱情呢?

I love you, not only for what you are, but for what I am when I am with you.

输入描述:

共一行:一封若干个字符的情书(大小写不敏感)。 情书不会超过684594个字符(大写、小写字母)。

输出描述:

共一行:包含一个整数,即iloveyou在情书中作为子序列出现的次数。 由于答案可能很大,请输出对20010905取模后的值。

示例1

IloveyouNotonlyforwhatyouareButforwhatIamWhenIamwithyouIloveyouNotonlyforwhatYouhavemadeofyourselfButforwhatYouaremakingofme

输出

2864

using namespace std;
const int N = 1e8+10;
const int mod = 20010905;
string s;
int dp[N];
int main()
{
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]>='A'&&s[i]<='Z') s[i]+=32;
        if(s[i]=='i') dp[0]++;
        if(s[i]== 'l') dp[1]=(dp[0]+dp[1])% mod;
        if(s[i]=='o') dp[2] = (dp[1]+dp[2])%mod;
        if(s[i]=='v') dp[3]=(dp[2]+dp[3])%mod;
        if(s[i]=='e') dp[4]=(dp[3]+dp[4])%mod;
        if(s[i]=='y') dp[5]=(dp[4]+dp[5])%mod;
        if(s[i]=='o') dp[6]=(dp[5]+dp[6])%mod;
        if(s[i]=='u') dp[7]=(dp[6]+dp[7])%mod;
    }
    printf("%d",dp[7]);
    return 0; 
}