【CF】873B Balanced Substring(前缀和+map)
Balanced Substring
刚讲过差分与前缀和专题,一直以为这两个名词很高大上,其实也就那回事。哈哈。
题源:https://codeforces.com/contest/873/problem/B
题意:给你一串01字符串,让你寻找其中最长的平衡字符串长度。
平衡字符串:字符串中 1的个数=0的个数
题解:所谓平衡,那么当遇见0的时候当-1。然后利用前缀和的思想,求出前缀和。
当一个前缀和第二次出现的时候就是出现了平衡字符串。那么我们用map<int,int>来记录前缀和sum和第一次出现的下标即可,之后再遇见sum,计算平衡字符串的长度就ok。
PS:我可不会告诉你我先开始求出了一个前缀和数组s,然后傻乎乎的从开始找那个数,然后从倒着找另一个数。时间复杂度太高了(扯犊子操作啊哈哈)
代码:
#include <iostream>
#include <cstdio>
#include <map>
#define maxn 100005
using namespace std;
//@start: 2020-03-26 20:44:09
//source:https://codeforces.com/contest/873/problem/B
//前缀和
map<int,int> mp;
int main()
{
int n,sum=0,ans=0;
string s;
cin>>n>>s;
mp[0]=0;//此地方是个坑点
for(int i=0;i<n;i++)
{
if(s[i]=='1')sum++;
else sum--;
if(mp.count(sum))
ans=max(ans,i+1-mp[sum]);
else
mp[sum]=i+1;
}
cout<<ans;
return 0;
}
【CF】873B Balanced Substring(前缀和+map)的更多相关文章
- CF873B Balanced Substring (前缀和)
CF873B Balanced Substring (前缀和) 蛮有意思的一道题,不过还是.....................因为CF评测坏了,没有试过是否可过. 显然求\(\sum[i][0] ...
- [Codeforces 873B]Balanced Substring
Description You are given a string s consisting only of characters 0 and 1. A substring [l, r] of s ...
- CodeForces - 873B Balanced Substring(思维)
inputstandard input outputstandard output You are given a string s consisting only of characters 0 a ...
- Codeforces 873B - Balanced Substring(思维)
题目链接:http://codeforces.com/problemset/problem/873/B 题目大意:一个字符串全部由‘0’和‘1’组成,当一段区间[l,r]内的‘0’和‘1’个数相等,则 ...
- codefroces 873 B. Balanced Substring && X73(前缀和思想)
B. Balanced Substring You are given a string s consisting only of characters 0 and 1. A substring [l ...
- Codeforces 873 B. Balanced Substring(前缀和 思维)
题目链接: Balanced Substring 题意: 求一个只有1和0的字符串中1与0个数相同的子串的最大长度. 题解: 我的解法是设1的权值是1,设0的权值是-1,求整个字符串的前缀和并记录每个 ...
- 【Cf edu 30 B. Balanced Substring】
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- 837B. Balanced Substring
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Balanced Substring
You are given a string s consisting only of characters 0 and 1. A substring [l, r] of s is a string ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
随机推荐
- Spring--AOP简介+入门案例
AOP简介 面向切面编程:在不惊动原始设计的基础上,进行功能增强 各个要应用该功能的对象叫做连接点,那个功能叫做通知,表面上的代码没有发生变化,私下里发生变化的连接点,会出现切入点,切入点与通知通过切 ...
- dart基础---->dart语法入门
Dart is an open source, structured programming language for creating complex, browser-based web appl ...
- fluter usage---->动态更换Theme
应用中切换深色主题和暗色主题是比较常见的操作,今天我们就来学习一下Flutter中动态的切换主题. Simple Theme import 'package:flutter/material.dart ...
- (原创)【B4A】一步一步入门09:xCustomListView,加强版列表、双行带图片、复选框按钮等自定义列表项(控件篇05)
一.前言 上篇((原创)[B4A]一步一步入门08:ListView,列表.单行.双行.双行带图片.列表项样式(控件篇04))我们讲了ListView,目前官方已经不推荐再使用ListView了,而是 ...
- TypeScript 学习总结
TypeScript JavaScript 语言 面向对象编程语言 面向脚本编程 是否支持可选参数 支持 不支持 是否支持静态类型 支持 不支持 是否支持接口 支持 不支持 TS:是JS的超集,即对J ...
- 关于Docker compose值IP与域名的映射 之 extra_host
公司的所有项目都是采用Docker容器化部署,最近有一个项目需要使用定时任务调用第三方Api,正式web环境服务器的网络与第三方网络是通畅的,但是当将代码发布到正式环境,调用接口却显示 System. ...
- Excel或数据库快速生成GUID
一般一些开发软件或者网站可以直接生成guid, 比如:https://www.iamwawa.cn/guid.html 但是在某些场景下,经常在一些excel或者数据库操作需要快速生成指定格式的gui ...
- 我没能实现始终在一个线程上运行 task
前文我们总结了在使用常驻任务实现常驻线程时,应该注意的事项.但是我们最终没有提到如何在处理对于带有异步代码的办法.本篇将接受笔者对于该内容的总结. 如何识别当前代码跑在什么线程上 一切开始之前,我们先 ...
- 一些随笔 No.1
耦合 耦合是一个设计与逻辑上的问题 例如一个软件有20个功能,删除任意一个功能对别的19个功能不造成影响,就是低耦合 如果删除一个功能后其他功能会失去完整性,那么就是高耦合 Difference be ...
- 自定义SpringMVC实现
首先要知道springmvc主要流程: 当用户,也是就是请求送达过来的时候, 1.前端控制器会获取, 2.请求处理映射器,返回执行链接 3.获取执行适配器适配,交给执行器 4.返回modelandvi ...