【Codeforces Round #442 (Div. 2) B】Nikita and string

【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

枚举中间那一段从哪里开始、哪里结束就好 注意为空的话,就全是a. 用前缀和优化一下。

【代码】

#include <bits/stdc++.h>
using namespace std;

const int N = 5e3;

string s;
int a[N+10],pre[N+10][2],ans;

int main(){
	//freopen("rush.txt","r",stdin);
	cin >> s;
	int len = s.size();
	for (int i = 0;i < len;i++){
		a[i+1] = s[i]-'a';
	}         
	for (int i = 1;i <= len;i++){
		for (int j = 0;j < 2;j++)
			pre[i][j] = pre[i-1][j];
		pre[i][a[i]]++;
	}
	ans = pre[len][0];
	for (int i = 1;i <= len;i++)
		for (int j = i;j <= len;j++){
			int num1 = pre[j][1]-pre[i-1][1];
			int num0 = pre[i-1][0] + pre[len][0]-pre[j][0];
			ans = max(ans,num1+num0);    	
		}	
	printf("%d
",ans);
	return 0;
}
原文地址:https://www.cnblogs.com/AWCXV/p/7721716.html