牛客小白月赛21 I love you

题目链接

dp[i] 表示“iloveyou”这个字符串中第i个字母已经出现的“有效次数”;

代码

#include<iostream>
#include<cmath>
using namespace std;
const ll mod = 20010905;
ll dp[9];
int main(){
    string s;
    cin >> s;
    memset(dp,0,sizeof(dp));
    for (int i = 0; i < s.length(); ++i)
    {
 
        s[i] = tolower(s[i]);
        dp[8] = (dp[8] + (s[i] == 'u')*dp[7]) %mod;
        dp[7] = (dp[7] + (s[i] == 'o')*dp[6]) %mod;
        dp[6] = (dp[6] + (s[i] == 'y')*dp[5]) %mod;
        dp[5] = (dp[5] + (s[i] == 'e')*dp[4]) %mod;
        dp[4] = (dp[4] + (s[i] == 'v')*dp[3]) %mod;
        dp[3] = (dp[3] + (s[i] == 'o')*dp[2]) %mod;
        dp[2] = (dp[2] + (s[i] == 'l')*dp[1]) %mod;
        dp[1] = (dp[1] + (s[i] == 'i')) %mod;
    }
    cout << dp[8] << endl;
    return 0;
 
}

猜你喜欢

转载自www.cnblogs.com/hulian425/p/12238637.html