最长配对(51Nod-2494)
题目
小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)相关推荐
- 2022-6-5 括号之价,最长配对,梦中岛之路,小Biu的旅行,最小正子段和,小b和排序,顺子,重排列得到2的幂,重排列,和为K的倍数,低买高卖,小b删列
1. 括号之价 [栈] 小Y上数据结构课的时候摸鱼,听到老师在讲用栈做括号匹配,于是乎边随意写了一个合法的括号序列.但是光是写括号太无聊了,他现在想知道这个括号序列的价值.他是这样定义一个括号序列的价 ...
- 51nod 2494 最长配对
小b有一个01序列,她想找到一个最长的区间使得这个区间的01能两两配对,即0的个数和1的个数相等.求最长区间的长度. 收起 输入 第一行一个正整数n,表示数组长度,其中0<n≤50000: 第二 ...
- 取余最长路 51Nod - 1624
https://www.51nod.com/Challenge/Problem.html#!#problemId=1624 一开始考虑枚举第一行 剩下的两行用set维护 但是在枚举过程中 低两行中的数 ...
- LCS最长公共子序列(最优线性时间O(n))
这篇日志主要为了记录这几天的学习成果. 最长公共子序列根据要不要求子序列连续分两种情况. 只考虑两个串的情况,假设两个串长度均为n. 一,子序列不要求连续. (1)动态规划(O(n*n)) (转自:h ...
- Benchmarking of long-read correction methods长期校正方法的基准测试
长期校正方法的基准测试 朱莉安·C·多姆(Juliane C Dohm), 菲利普·彼得斯, 南希·斯特拉斯(Nancy Stralis-Pavese ) 亨兹·希梅尔鲍尔(Heinz Himmel ...
- 线性结构 —— 前缀和
[概述] 前缀和是一种及其优秀的线性结构,也是一种重要的思想,能极大的降低区间查询的时间复杂度. 前缀和又分为一维前缀和.二维前缀和,其与差分数组密切相关,关于差分数组:点击这里 [一维前缀和] 假设 ...
- 【OpenCV 例程 300篇】245. 特征检测之 BRISK 算子
『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]245. 特征检测之 BRISK 算子 6.8.1 算法简介 尺度不变的二进制特征描 ...
- OpenCV每日函数 特征检测和描述模块(6) BRISK类 (提取关键点和计算描述符)
一.概述 S. Leutenegger 等 2011年提出Binary Robust Invariant Scalable Keypoints(BRISK,使用AGAST算法检测角点,并在尺度空间金字 ...
- R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join)、配对图可视化(根据分类变量的值为散点图上的数据点添加颜色)
R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join).配对图可视化(根据分类变量的值为散点图上的数据点添加颜色,Add color ...
最新文章
- .net 从txt中读取行数据_Python读取txt数据并绘图
- Python必须要掌握的高端语法
- Django基础之Model创建表
- redis源码epoll用法
- 006_Select.sql查询语句
- 第十八章 lamp架构
- ajax请求去获取base64_前端将图片转换为base64位,使用ajax传递到后台,但是图片经过base64转换成字符串后非常长,无法使用ajax...
- vbs格式编程教程基础
- Nacos 原理 Jraft Distro Grpc 持续跟新中...
- 基于PT2001 的4缸发动机 DFI 控制讲解3 - DCDC部分
- 骨传导蓝牙耳机推荐,2022年最好的骨传导耳机
- APP内打电话的小功能
- java阳历转为阴历错了一天_Java 阴历阳历转换
- canvas生成二维码海报-可配置
- Ubuntu搭建CTFd平台实现动态靶机的过程
- ShuffleNetv2论文详解
- 齐二TK6916/20/26/32系列数控落地铣镗床简介6
- 疫情风险地区查询数据库
- 推迟上市的网易云,逃不开在线音乐市场的“白刃战”
- KMP算法DNA的病毒检测