简单dp,dp[i][a][b][k]表示i位的字符串,第i位为a,第i-1位为b,之前是否已经含有red(k为1表示有,0表示无) 的方案数,可以使用滚动数组优化掉第一维度 时间复杂度为 n*26*26*26*2,会t掉。故需要优化,可以考虑对字母进行压缩,分别用0,1,2,3来表示字母 r,e,d,其他字母 。这样时间复杂度可以降为n*4*4*4*2 ,具体转移方程可以看代码 #include <bits/stdc++.h> using namespace std; #define endl '\n' #define int long long const int ...