- 题目链接:躲藏
- 如果没有权限看题,请看下图
- 题目思路:dp,因为求的是Cwbc作为子序列出现的次数,且不区分大小写,那我们就把整个序列全化为大写,用四个变量(e1,e2,e3,e4)来记录以c、w、b、c出现的次数,我们不难得出
- 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using namespace std;
char s[Maxn];
ll e1,e2,e3,e4;
int main() {
while(scanf("%s",s+1)!=EOF) {
e1=e2=e3=e4=0;
int lens=strlen(s+1);
for(int i=1; i<=lens; i++) {
if(s[i]>='a'&& s[i]<='z') s[i]-=32;
if(s[i]=='C')
e1++;
if(s[i]=='W')
e2+=(e1)%mo;
if(s[i]=='B')
e3+=(e2)%mo;
if(s[i]=='C')
e4+=(e3)%mo;
}
printf("%lld\n",e4%mo);
}
return 0;
}