long long mod = 1e9 + 7;
//创建一个数组每一个元素为1
vector dp(5, 1);
vector ndp...(5);
for (int i = 2; i <= n; ++i) {
/* a前面可以为e,u,i */
ndp[0] = (dp[1].../* i前面可以为e,o */
ndp[2] = (dp[1] + dp[3]) % mod;
/* o前面可以为i */
ndp...dp = ndp;
}
return accumulate(dp.begin(), dp.end(), 0LL) % mod;
}
};...方法:
n = 2,分别考虑a,e,i,o,u作为最后一个元素
n = 3,在n=2的基础上分别考虑a,e,i,o,u作为最后一个元素,这里需要 dp = ndp;把dp的元素全部替换为ndp的元素