题目大意:给定一个字符串,这个字符串中只有“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. thinkPHP 数字字典

  2. iOS开发UI篇—APP主流UI框架结构

    iOS开发UI篇—APP主流UI框架结构 一.简单示例 说明:使用APP主流UI框架结构完成简单的界面搭建 搭建页面效果:                                二.搭建过程和 ...

  3. Codeforces 451E Devu and Flowers(组合计数)

    题目地址 在WFU(不是大学简称)第二次比赛中做到了这道题.高中阶段参加过数竞的同学手算这样的题简直不能更轻松,只是套一个容斥原理公式就可以.而其实这个过程放到编程语言中来实现也没有那么的复杂,不过为 ...

  4. [NOI2007 Day1] 货币兑换 Cash

    vijos P1508 / BZOJ 1492 膜拜了这么久的cdq分治,终于有机会亲自来写了.虽然这个思想很好理解,先做前一半,计算前一半对后一半的影响,再做后一半.但是由于我这个傻Ⅹ,以前既没有做 ...

  5. uboot make xxx_config与make的过程分析

    一直很想捋清楚make xxx_config,make 的执行过程. 在uboot的makefile中有这样的话: %_config::unconfig @$(MKCONFIG) -A $(@:_co ...

  6. 前台发送字符串给后台,格式为(a,b,c,d),后台将字符串转换成数组遍历后进而更新CheckId

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; u ...

  7. Apache +Tomcat的负载均衡与集群配置

    实验拓扑图: 一.搭配环境 (1).Tomcat的安装和配置 Tomcat_a的ip:192.168.55.229 Tomcat_b的ip:192.168.55.231 Tomcat的需要安装jdk和 ...

  8. IEEE参考文献格式

    IEEE参考文献格式 由于国外期刊参考文献与国内参考文献的格式有很大区别,其中最常用的参考文献为会议论文.书籍.期刊文献,所以特别在此记录说明,方便以后使用. 会议论文(Published Confe ...

  9. 个人开发者做一款Android App需要知道的事情

    个人开发者做一款Android App需要知道的事情 在大学时, 自己是学计算机专业的,而且还和老师一起做过一年半的项目. 有时候是不是有这样的想法,做一个自己的网站.但一直未付诸行动.2012年时, ...

  10. log4j.properties配置详解(转)

    本篇文章转自http://it.oyksoft.com/log4j/ 非常感谢原创作者的辛勤编写与分享. 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders ...