Codeforces Round #442 (Div. 2) B. Nikita and string
Posted Kearon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #442 (Div. 2) B. Nikita and string相关的知识,希望对你有一定的参考价值。
题意:给一个字符串,问形如a……a/ /b……b/ /a……a的子串最大长度
题解:设三个状态a,ab,aba分别表示对应长度。因为每段长度可以为0,所以后一个状态的包含前一个状态。每次更新最大长度,最终的aba即为答案
1 #include <bits/stdc++.h> 2 using namespace std; 3 char str[5050]; 4 int main() 5 { 6 cin>>str; 7 int len=strlen(str); 8 int a,ab,aba; 9 a=ab=aba=0; 10 for(int i=0;i<len;i++) 11 { 12 if(str[i]==‘a‘) 13 a++,aba++; 14 else 15 ab++; 16 ab=max(a,ab); 17 aba=max(ab,aba); 18 } 19 cout<<aba<<endl; 20 }
以上是关于Codeforces Round #442 (Div. 2) B. Nikita and string的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #442 (Div. 2) B. Nikita and string
Codeforces Round #442 (Div. 2) C. Slava and tanks
Codeforces Round #442 (Div. 2) 877E - Danil and a Part-time Job dfs序+线段树
Codeforces Round #436 E. Fire(背包dp+输出路径)