题目

小b有一个01序列,她想找到一个最长的区间使得这个区间的01能两两配对,即0的个数和1的个数相等。求最长区间的长度。

输入

第一行一个正整数n,表示数组长度,其中0<n≤50000;
第二行n个0或1,以空格隔开。

输出

输出一个数,表示最长区间的长度

输入样例

3
0 1 0

输出样例

2

思路:

由于要求最长区间使得 0、1 能够两两配对,那么可以将 0 转成 -1,这样 -1、1 相加进行枚举,题目就转化成求最长连续的 0 个个数

故先进行预处理求前缀和,然后枚举前缀和看是否为 0 即可

源程序

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 100000+5;
const int dx[] = {0,0,-1,1,-1,-1,1,1};
const int dy[] = {-1,1,0,0,-1,1,-1,1};
using namespace std;int sum[N];
int main() {int n;scanf("%d",&n);for(int i=1; i<=n; i++) {int x;scanf("%d",&x);if(x==0)//0转为-1sum[i]=sum[i-1]-1;elsesum[i]=sum[i-1]+1;}int res=-1;for(int i=1; i<n; i++) {for(int j=i+1; j<=n; j++) {if(sum[j]-sum[i-1]==0)res=max(res,j-i+1);}}printf("%d\n",res);return 0;
}

最长配对(51Nod-2494)相关推荐

  1. 2022-6-5 括号之价,最长配对,梦中岛之路,小Biu的旅行,最小正子段和,小b和排序,顺子,重排列得到2的幂,重排列,和为K的倍数,低买高卖,小b删列

    1. 括号之价 [栈] 小Y上数据结构课的时候摸鱼,听到老师在讲用栈做括号匹配,于是乎边随意写了一个合法的括号序列.但是光是写括号太无聊了,他现在想知道这个括号序列的价值.他是这样定义一个括号序列的价 ...

  2. 51nod 2494 最长配对

    小b有一个01序列,她想找到一个最长的区间使得这个区间的01能两两配对,即0的个数和1的个数相等.求最长区间的长度. 收起 输入 第一行一个正整数n,表示数组长度,其中0<n≤50000: 第二 ...

  3. 取余最长路 51Nod - 1624

    https://www.51nod.com/Challenge/Problem.html#!#problemId=1624 一开始考虑枚举第一行 剩下的两行用set维护 但是在枚举过程中 低两行中的数 ...

  4. LCS最长公共子序列(最优线性时间O(n))

    这篇日志主要为了记录这几天的学习成果. 最长公共子序列根据要不要求子序列连续分两种情况. 只考虑两个串的情况,假设两个串长度均为n. 一,子序列不要求连续. (1)动态规划(O(n*n)) (转自:h ...

  5. Benchmarking of long-read correction methods长期校正方法的基准测试

    长期校正方法的基准测试  朱莉安·C·多姆(Juliane C Dohm), 菲利普·彼得斯, 南希·斯特拉斯(Nancy Stralis-Pavese ) 亨兹·希梅尔鲍尔(Heinz Himmel ...

  6. 线性结构 —— 前缀和

    [概述] 前缀和是一种及其优秀的线性结构,也是一种重要的思想,能极大的降低区间查询的时间复杂度. 前缀和又分为一维前缀和.二维前缀和,其与差分数组密切相关,关于差分数组:点击这里 [一维前缀和] 假设 ...

  7. 【OpenCV 例程 300篇】245. 特征检测之 BRISK 算子

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]245. 特征检测之 BRISK 算子 6.8.1 算法简介 尺度不变的二进制特征描 ...

  8. OpenCV每日函数 特征检测和描述模块(6) BRISK类 (提取关键点和计算描述符)

    一.概述 S. Leutenegger 等 2011年提出Binary Robust Invariant Scalable Keypoints(BRISK,使用AGAST算法检测角点,并在尺度空间金字 ...

  9. R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join)、配对图可视化(根据分类变量的值为散点图上的数据点添加颜色)

    R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join).配对图可视化(根据分类变量的值为散点图上的数据点添加颜色,Add color ...

最新文章

  1. .net 从txt中读取行数据_Python读取txt数据并绘图
  2. Python必须要掌握的高端语法
  3. Django基础之Model创建表
  4. redis源码epoll用法
  5. 006_Select.sql查询语句
  6. 第十八章 lamp架构
  7. ajax请求去获取base64_前端将图片转换为base64位,使用ajax传递到后台,但是图片经过base64转换成字符串后非常长,无法使用ajax...
  8. vbs格式编程教程基础
  9. Nacos 原理 Jraft Distro Grpc 持续跟新中...
  10. 基于PT2001 的4缸发动机 DFI 控制讲解3 - DCDC部分
  11. 骨传导蓝牙耳机推荐,2022年最好的骨传导耳机
  12. APP内打电话的小功能
  13. java阳历转为阴历错了一天_Java 阴历阳历转换
  14. canvas生成二维码海报-可配置
  15. Ubuntu搭建CTFd平台实现动态靶机的过程
  16. ShuffleNetv2论文详解
  17. 齐二TK6916/20/26/32系列数控落地铣镗床简介6
  18. 疫情风险地区查询数据库
  19. 推迟上市的网易云,逃不开在线音乐市场的“白刃战”
  20. KMP算法DNA的病毒检测

热门文章

  1. SQL 16进制数转化10进制
  2. csdn的blog后台程序的导航菜单的实现
  3. 金三银四产品人跳槽指南:这9本书帮你搞定升职加薪
  4. 「区块链+人工智能」:来自谷歌、IBM、百度的真实案例
  5. linux宝塔登录不上去怎么回事,宝塔面板点击登陆没有用怎么办
  6. lua游戏开发实践指南光盘_Godot游戏开发实践之三:容易被忽视的Resource
  7. 面试官:能说说Redis的持久化机制吗?
  8. 有趣的图说 HashMap,普通人也能看懂
  9. 开发指南专题十七-JEECG图表配置说明
  10. 百度编辑器 Ueditor 如何增加模板 ?