Crazy Binary String 思维

题意

给出01串,给出定义:一个串里面0和1的个数相同,求 满足定义的最长子序列和子串

分析

子序列好求,就是0 1个数,字串需要思考一下。实在没有思路可以看看数组范围(n<=1e5),很像nlogn或者n的算法,这个时候就要考虑一下二分和前缀和优化,二分感觉⑧太行,这个时候研究一下前缀和的性质,发现0 为-1,1为1的时候,前缀和相同的两个位置中间恰好可以构成一个满足定义的串,所以这题就解决了。没有思路的时候多发散一下思维,从多角度思考一下问题。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+4;
char s[maxn];
map<int,int>mp;
int main(){
int n;
scanf("%d",&n);
scanf("%s",s+1);
int tmp=0;
int ans=0;
int ling =0,yi=0;
mp[0]=0;
for(int i=1;i<=n;i++){
if(s[i]=='1')tmp++,yi++;
else tmp--,ling++; if(!mp.count(tmp)){
mp[tmp]=i;
}
else
ans=max(ans,i-mp[tmp]);
}
printf("%d %d\n",ans,2*min(ling,yi));
return 0;
}

最新文章

  1. Cmd Markdown编辑器简明语法手册
  2. iOS开发之cell多按钮
  3. web开发者谷歌浏览器常用插件
  4. Autofac的高级使用——Autofac.2.6.3.862
  5. Shader 之 顶点变形
  6. 延迟加载图片插件LazyLoad.js的使用方法
  7. 【iCore3 双核心板_FPGA】实验十七:基于I2C总线的ARM与FPGA通信实验
  8. iOS:给Git仓库上传代码时,超过100M会被拒绝(例如github和oschina)
  9. Silverlight C1.Silverlight.FlexGrid 表格动态列
  10. 电视直播用的.m3u8 PC端和移动端地址 【流媒体播放测试专用】
  11. 2016 Al-Baath University Training Camp Contest-1 C
  12. 无限极分类,传递一个父ID,返回所有子集
  13. hdu Max Sum Plus Plus(dp+滚动数组)
  14. Windows Phone 8.1 应用生命周期
  15. sql语句,实践证明了某种情况下not in的效率高于not exists
  16. Asp数据转Json
  17. Java 11新功能抢先了解
  18. Python——面向对象的特性
  19. 获取百度地图POI数据二(准备搜索关键词)
  20. View体系第一篇:基础

热门文章

  1. LIS 51Nod 1134 最长递增子序列
  2. 数据库异常:SQL Error: 0, SQLState: S0022
  3. centos7上python3.6.5的安装及卸载
  4. mysql 时间,时间戳,字符串之间相互转换
  5. C#的结构和数组
  6. Ueditor1.4.3.3 asp UTF-8版文件缺失修改方法
  7. pytorch深度学习书、论坛和比赛地址
  8. win10文件夹 无法显示当前所有者 管理员都不行
  9. DataGridView 定位到指定行
  10. PHP中关于foreach使用引用变量的坑