链接

[https://codeforces.com/contest/1082/problem/B]

题意

给你一个包含GS的字符串,只允许交换一次任意不同位置的字符,问最长的连续G串是多少

分析

很显然贪心找相邻的中间间隔一个S的两个连续G串

看了别人写的很巧妙,多用几个样例就知道其中的奥妙了

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
int n; string s;
//freopen("in.txt","r",stdin);
while(cin>>n){
cin>>s;
int cntG=0,cntS=0,sumG=0,ans=0;
for(int i=0;i<n;i++){
if(s[i]=='G'){
cntG++; sumG++;
}
else{
cntS=cntG; cntG=0;//遇到scntG从新归零统计G连续的个数
}
ans=max(ans,cntG+cntS+1);//假设都可以交换带来收益
}
ans=min(ans,sumG);//这里很关键存在交换没有带来收益的
cout<<ans<<endl;
}
return 0;
}

最新文章

  1. Ninject之旅之五:Ninject XML配置
  2. ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)
  3. SQL日期格式,转自will哥
  4. hdu 1251 统计难题 (字典树入门题)
  5. (原创)通用查询实现方案(可用于DDD)[附源码] -- 设计思路
  6. Revit二次开发示例:DesignOptions
  7. Android之BroadcastReceiver1
  8. Blend制作的下载动画
  9. RHEL7 添加用户,含sudo权限
  10. 设置MySQL主从同步
  11. 灯笼Lantern下载及使用教程
  12. 基于page的简单页面推送技术
  13. Windows命令行命令集锦
  14. Swift初探一
  15. ant语法和规范
  16. 【Scala】Scala之Methods
  17. 基于封装通用的EF CRUD 的操作
  18. BZOJ4977[Lydsy1708月赛]跳伞求生——贪心+堆+模拟费用流
  19. js获取元素属性值为空的原因和解决办法
  20. Problem: 棋盘小游戏(一道有意思的acm入门题

热门文章

  1. C++中的istringstream
  2. jQuery插件slider实现图片轮播
  3. Android Studio IDE的 LogCat如何过滤指定应用的调试信息
  4. 使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink
  5. Hue添加Spark notebook
  6. CSS三栏布局
  7. linux连接iscsi存储方法
  8. Java并发(五)线程池使用番外-分析RejectedExecutionException异常
  9. 如何迅速入门STM32
  10. 运行Android Studio自带模拟器报:Guest isn&#39;t online after 7 second...