题目其实很简单 以字母为单位 子序列 + dp 思考 (寒假太懒了, 自己也好天真, 还是要努力啊
#include <bits/stdc++.h> using namespace std; const int mod = 20010905; const string sub_str = " iloveyou"; // 注意有两个o!! string str; int sum[10]; int main() { cin>>str; sum[0]=1; for (int i=0; i<str.size(); i++) { if (str[i]>='A'&&str[i]<='Z') str[i]=str[i]-'A'+'a'; for(int j=1; j<=8; j++) if (str[i]==sub_str[j]) sum[j] = (sum[j] + sum[j-1]) % mod; } cout<<sum[8]<<endl; return 0; }
抓住青春的尾巴。。。