博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019牛客多校第三场B-Crazy Binary String(前缀和+思维)
阅读量:5277 次
发布时间:2019-06-14

本文共 795 字,大约阅读时间需要 2 分钟。

Crazy Binary String

解题思路

把1记为1,把0记为-1,然后求前缀和,前缀和相等的就说明中间的01数一样。只要记录前缀和数值出现的位置即可更新出答案。

代码如下

#include 
#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;const int N = 100005;int l[N << 1];int sum[N];int main(){ int n; scanf("%d%*c", &n); int ans1 = 0; int a, b; a = b = 0; for(int i = 1; i <= n; i ++){ char ch = getchar(); if(ch == '0'){ ++a; sum[i] = sum[i - 1] - 1; } else if(ch == '1'){ ++b; sum[i] = sum[i - 1] + 1; } if(l[sum[i] + N] || sum[i] == 0) ans1 = max(ans1, i - l[sum[i] + N]); else l[sum[i] + N] = i; } cout << ans1 << " " << 2 * min(a, b) << endl; return 0;}

转载于:https://www.cnblogs.com/whisperlzw/p/11252827.html

你可能感兴趣的文章
Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》
查看>>
Zabbix定义
查看>>
html页面展示Json样式
查看>>
Java 23 种设计模式
查看>>
1035. 插入与归并(25)
查看>>
MySql远程连接设置
查看>>
pandas常用
查看>>
爬虫工具——Selenium和PhantomJS
查看>>
MyBatis笔记——EhCache二级缓存
查看>>
更改Eclipse Ctrl+1 的Idea 方式
查看>>
Python的map、filter、reduce函数
查看>>
第二届360杯全国大学生信息安全技术大赛部分解题思路(逆向分析)
查看>>
WPF使用RoutedCommand自定义命令
查看>>
Notepad++如何编译、运行Java
查看>>
高效学习,战胜拖延症
查看>>
如何将读书与自己的生活工作结合起来?
查看>>
理解php中的yield
查看>>
线性变化和非线性变化
查看>>
用VS向SharePoint中部署添加List 并指定应用的Content Type
查看>>
Salesforce中所有常用类型字段的取值与赋值
查看>>