codeforces 877b
2 seconds
256 megabytes
standard input
standard output
One day Nikita found the string containing letters "a" and "b" only.
Nikita thinks that string is beautiful if it can be cut into 3 strings (possibly empty) without changing the order of the letters, where the 1-st and the 3-rd one contain only letters "a" and the 2-nd contains only letters "b".
Nikita wants to make the string beautiful by removing some (possibly none) of its characters, but without changing their order. What is the maximum length of the string he can get?
The first line contains a non-empty string of length not greater than 5 000 containing only lowercase English letters "a" and "b".
Print a single integer — the maximum possible size of beautiful string Nikita can get.
abba
4
bab
2
It the first sample the string is already beautiful.
In the second sample he needs to delete one of "b" to make it beautiful.
思路:记录每个位置后面有多少个a,有多少个b 存在arr[5005][2]里面 arr[i][0]表示i后面包括i有arr[i][0]个a arr[i][1]表示i后面包括i有arr[i][1]个b
遍历每个段位
for(i =0 ; i < strlen(str);++i)
{
if(str[j] == 'b')
{
for(j = i; j < strlen(str);++j)
{
if(str[j] == 'b')
maxn = max(maxn, arr[0][0] - arr[i][0] + arr[i][2] - arr[j][2] + 1 + arr[j][0]);
}
}
}
注意全是a的情况
丑陋的代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int main()
{
// char str[5010];
string str;
int arr[5010][2];
int i,j,k,a,b,a1,b1;
// memset(str,0,sizeof(str));
int maxn = 0;
a1 = b1 = a = b = 0;
// scanf("%s",str);
cin >> str;
memset(arr, 0, sizeof(arr));
for(i = 0; i < str.length(); ++i)
{
if(str[i] == 'a')
a++;
else
b++;
}
if(b == 0)
{
printf("%d\n",(int)str.length());
return 0;
}
a1 = b1 = 0;
for(i = 0; i < str.length(); ++i)
{
if(str[i] == 'a')
{
arr[i][0] = a - a1;
arr[i][1] = b - b1;
a1++;
}
else
{
arr[i][0] = a - a1;
arr[i][1] = b - b1;
b1++;
}
}
a1 = b1 = 0;
for(i = 0; i < str.length(); ++i)
{
if(str[i] == 'b')
{
for(j = i; j < str.length(); ++j)
{
if(str[j] == 'b')
maxn = max(maxn,a - arr[i][0] + arr[i][1] - arr[j][1] + arr[j][0]+1);
}
}
}
printf("%d\n",maxn);
}
codeforces 877b的更多相关文章
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
- CodeForces - 261B Maxim and Restaurant
http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...
- CodeForces - 696B Puzzles
http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...
- CodeForces - 148D Bag of mice
http://codeforces.com/problemset/problem/148/D 题目大意: 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠.谁先抓到白色老鼠谁就赢. 王妃每次 ...
随机推荐
- HTTP.ContentType
1. multipart/x-mixed-replace http://blog.dubbelboer.com/2012/01/08/x-mixed-replace.html
- ubuntu12.04下Qt调试器的使用
最近,我一直在用Qt编写C++程序,但在编写过程中遇到了问题,想用Qt Creator中的调试器调试一下,但调试时(在Qt Creator中已配置好相应的调试器)出现“ ptrace:Operatio ...
- UI设计工资有多高?怎么快速拿高薪?
1.UI设计工资有多高? 有人不服UI设计待遇薪资高,那么下面就来看下一线城市的最新UI设计平均薪资待遇,大家也可以打开各招聘网站查询各行业平均薪资情况,一个行业的薪资高不高行业市场决定. 待遇较高说 ...
- 上传文件 input file
//-----前端文件------- form id="uploadForm" enctype="multipart/form-data"> <in ...
- python之初级篇2
一.数字类型 1)整数 int 类型 - bit_length() # 查询以二进制表示一个数字的值所需的位数 - int.from_bytes(bytes,byteorder) # 返回给定字节数组 ...
- 36、NSTimer使用详解-开启、关闭、移除
1.要是用一个定时器,首先要定义一个定时器: @property(strong,nonatomic)NSTimer *myTimer;//定时器 2.初始化,初始化有两种方式: 第一种: + (NST ...
- 【转】python 修改os环境变量
举一个很简单的例子,如果你发现一个包或者模块,明明是有的,但是会发生这样的错误: >>> from algorithm import *Traceback (most recent ...
- php socket通过smtp发送邮件(纯文本、HTML,多收件人,多抄送,多密送)
<?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件,可以多收件人,多抄送,多秘密抄送 * @example * $mail = new MySendMail(); * ...
- php->是什么意思
在php中经常会看到这种符号,但是不明白是什么意思,有没有细心点的朋友帮讲讲,请不要说看手册之类的话.如果真给我讲明白了,我还会有加分的哦!比如这个中的符号是什么意思:$sql=$mydami-> ...
- 2018.11.01 bzoj4325: NOIP2015 斗地主(贪心+搜索)
传送门 原来一直以为是一道大模拟. 没想到是一道搜索+最优性剪枝 如何搜最优呢? 我们考虑怎么最快出完. 大概是应该尽量出当前能出出去最多的吧. 于是我们选择优先出顺子. 这样做有什么好处呢? 我们会 ...