CF 604C Alternative Thinking#贪心
2016-02-25 12:00
387 查看
(~ ̄▽ ̄)~*
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int MAXN=100005; char s[MAXN]; int main() { int n; scanf("%d",&n); scanf("%s",s);//输入01串 int origin=1,flip=0; for(int i=1;i<strlen(s);i++) { if(s[i]==s[i-1]) flip++;//00或11 else origin++;//01或10 } if(flip>2) flip=2; //由于不管怎样改变原01串,只有两端关系(可能从11->10/10->11等)会受影响,中间的01串数量仍不变 //所以flip最多就是增加2 printf("%d\n",origin+flip); }
相关文章推荐
- ES配置文件参考与参数详解
- [C++11]_[初级]_[使用std::move移动对象资源]
- HTTPS协议说明
- Unity3d之截图方法
- 安装mongodb
- [C++11]_[初级]_[使用std::move移动对象资源]
- C#格式化字符串大全
- C#基本语法
- EntityFramework Code First 添加唯一键
- 年度十佳 DevOps 博客文章(前篇)
- vsftp
- Android 70道面试题汇总
- 6.UITabBarController
- 不断学习的博客
- javascript addLoadEvent函数说明 与jquery中onload区别
- Java程序员们最常犯的10个错误
- 使用WebRTC搭建前端视频聊天室——入门篇
- 开源 java CMS - FreeCMS2.3 移动app生成首页数据
- 欢迎使用CSDN-markdown编辑器
- OkHttp 同步get