题目大意:给定一个字符串,这个字符串中只有“r”和"b"组成,每次操作只能交换两个字符的位置或者将一个字符由"r"变"b"(或由"b"变"r").

问:至少需要操作多少次才能使得字符串中rb依次存在(rbrbrbrb...或者brbrbrbr....)

题解:交换所需要得次数肯定是小于字符变值,所以操作中优先考虑交换,然后才考虑改变字符值.所以用两个变量(rn,bn)依次记录下与标准字符串的差值

对于每个字符串分别用brbr和rbrbrb的形式判断他们.然后每交换一次,rn与bn都要减少一次。等交换完毕,剩下的操作就是变值,所以总的操作数就是

两个变量中差值大的那个。然后从两种变换中找出值最小的那个。

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdlib>
#define MAX_SIZE 100005
using namespace std;
char str[MAX_SIZE];
int main()
{
int n = ;
int rn = , bn = ;
int cnt = ;
cin>>n;
cin>>str;
//rbrb switch to brbr,相当于把字符串变成brbr的形式
for(int i = ; i < n; i++)
{
if(i% == )
{
if(str[i] == 'r')
rn++;
}
if(i% == )
{
if(str[i] == 'b')
bn++;
} }
cnt = max(rn,bn);
//brbr switch to rbrb,相当于把字符串变成rbrb的形式
rn = bn = ;
for(int i = ; i < n; i++)
{
if(i% == )
{
if(str[i] == 'r')
rn++;
}
if(i% == )
{
if(str[i] == 'b')
bn++;
} }
cout<<min(cnt,max(rn,bn))<<endl; }

coderforces719b的更多相关文章

随机推荐

  1. ASP.NET MVC 4 RC的JS/CSS打包压缩功能 Scripts.Render和Styles.Render

    打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS ...

  2. iOS开发Swift篇—(二)变量和常量

    iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...

  3. PHP批量过滤MYSQL数据库内站外链接和图片

    因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...

  4. 修改oracle字符集

    >sqlplus /nolog >conn / as sysdba sql>shutdown immediate sql>startup mount sql>ALTER ...

  5. 转: javascript实现全国城市三级联动菜单代码

    <html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...

  6. Android 源码下载

    一直想尝试android源码的编译,这两天正好海思代码的编译也需要ubuntu环境,于是安装了ubuntu 12.04,安装时选了语言为中文,因此下面很多状态及错误报告都是中文了,另外分配了4G sw ...

  7. SVN - 忽略已经提交的文件

    1.在本地删除要忽略的文件 2.与资源库同步,提交删除的文件 3.忽略文件

  8. Hadoop1.2.1 全集群3节点安装-rpm安装

    1.在三个节点上安装JDK RPM 2.在三个节点上安装HADOOP-1.2.1 RPM rpm方式安装和gz解压方式安装后的目录结构有些不同.安装好之后无需设置HADOOP_HOME环境变量 [ro ...

  9. 判断CAD版本

    使用命令: ACADVER ACADVER = "17.2s (LMS Tech)" (只读) CAD2016 ACADVER = "20.1s (LMS Tech)&q ...

  10. Error Handling

    Use Exceptions Rather Than Return Codes Back in the distant past there were many languages that didn ...