cf#333 (Div. 2) 区间最大最小值(RMQ || STL_set)
题目大意:n个数的序列,问最长的区间,区间内最大的数和最小的数差小于等于1
5 1 2 3 3 2
4
11 5 4 5 5 6 7 8 8 8 7 6
5
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int dp[100100][20],dp2[100100][20],s[100100];
int n;void RMQ_init()
{for(int i=1; i<=n; i++) {dp[i][0]=s[i];dp2[i][0]=s[i];}for(int j=1; (1<<j)<=n; j++)for(int i=1;i+(1<<j)-1<=n;i++){dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);dp2[i][j]=min(dp2[i][j-1],dp2[i+(1<<(j-1))][j-1]);}
}int Max(int L,int R)
{int k=0;k=log2(R-L+1);return max(dp[L][k],dp[R-(1<<k)+1][k]);
}int Min(int L,int R)
{int k=0;k=log2(R-L+1);return min(dp2[L][k],dp2[R-(1<<k)+1][k]);
}int main()
{int ans,i,j,l,r;scanf("%d",&n);for(i=1;i<=n;i++) scanf("%d",&s[i]);RMQ_init();l=1;r=1;ans=0;while(r<=n) {while(r<=n && Max(l,r)-Min(l,r)<=1) r++;ans=max(ans,r-l);while(Max(l,r)-Min(l,r)>1&&l<r) l++;}printf("%d\n",ans);return 0;
}
#include<bits/stdc++.h>
using namespace std;
multiset<int>ss;
multiset<int>::iterator it1,it2,it3;
const int maxn=1e5+100;
int a[maxn];
int main()
{int n,i,j,ans,p;int mx,mi;scanf("%d",&n);for(i=1;i<=n;i++) scanf("%d",&a[i]);p=1;mx=mi=a[1];ans=0;ss.insert(a[1]);for(i=2;i<=n;i++) {mx=max(mx,a[i]);mi=min(mi,a[i]);if(mx-mi<=1) {ss.insert(a[i]);ans=max(ans,(int)ss.size());continue;}ss.insert(a[i]);while(ss.size()>0&&mx-mi>1) {it1=ss.find(a[p++]);ss.erase(it1);it2=ss.begin();it3=ss.end();it3--;mi=*it2;mx=*it3;}ans=max(ans,(int)ss.size());}printf("%d\n",ans);return 0;
}
cf#333 (Div. 2) 区间最大最小值(RMQ || STL_set)相关推荐
- cf #829 Div.2(A~D)
Cf #829 Div.2 A. Technical Support 题意 给定一个以Q开头的只含有'Q'&'A'的字符串,每一个问题后面必须有回答 问给定的字符串是否符合要求 题解 贪心,Q ...
- cf #832 Div.2(A-D)
Cf #832 Div.2 文章目录 Cf #832 Div.2 [A. Two Groups](https://codeforces.com/contest/1747/problem/A) [B. ...
- cf #823 Div.2(A~C)
Cf #823 Div.2 文章目录 Cf #823 Div.2 [A. Planets](https://codeforces.com/contest/1730/problem/A) [B. Mee ...
- cf #825 Div.2(A~C2)
Cf #825 Div.2 文章目录 Cf #825 Div.2 [A. Make A Equal to B](https://codeforces.com/contest/1736/problem/ ...
- edu cf #138 Div.2(A~D)
edu cf #138 Div.2 文章目录 edu cf #138 Div.2 [A. Cowardly Rooks](https://codeforces.com/contest/1749/pro ...
- CF#320 Div.2 总结
比赛网址:cf#320 Div.2 晚上11点开始的比赛,持续2个半小时.结束时有两道题题过了预测数据,分时是A题和C题. 比赛开始的时候,理所当然地从A题开始看起.A题比较容易,稍微分析一下就可以看 ...
- cf #796 Div.2
cf #796 Div.2 文章目录 cf #796 Div.2 [A. Cirno's Perfect Bitmasks Classroom](https://codeforces.com/cont ...
- CF #366(div.2) C 模拟,思维
CF #366(div.2) C. Thor 题意:一个手机n个联系人,有q个操作.每次给出ty和ai,如ty==1,表示收到ai的一条信息:如ty==2,表示将ai发的信息都看掉:如ty==3, ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
最新文章
- jmeter web监听结果_JMeter 性能测试基本过程及示例
- eclipse java jar源码,eclipse查看Jar包源码
- 休息五分钟,学几个bash快捷键
- JZOJ 5183. 【NOIP2017提高组模拟6.29】小T的钢琴
- linux部署DM数据库的DEM系统
- IT销售素质 -- 自信进取
- 微软.NET年芳15:我在Azure上搭建Photon服务器(C#.NET)
- java流与文件——操作文件
- 固态硬盘 linux 文件系统,SSD是否需要使用特别的文件系统?
- 神经网络入门回顾(感知器、多层感知器)
- C#中const和readonly的区别
- 常见的 Web 应用攻击示例
- 处理机调度之时间片轮转调度算法实现
- 计算机硬盘介绍,硬盘简介 - 硬盘使用知识大全(1)
- 华为社招机考考什么_华为研发面试流程及机考题常出题型—亲历总结
- 同源、跨域、跨站、SameSite与withCredentials
- Pycharm 去掉拼音检查,大小写检查,自动补全不区分大小写
- 51单片机最小系统的c语言,89c51单片机最小系统,89c51最小系统原理图的功能详解...
- Fluent compiled 失败
- 6.shell之正则表达式
热门文章
- K9F1208U0M(64M nand flash)手册阅读以及相关驱动程序分析
- 2021双十二淘宝护肤品销量预测模型
- 一个android应用,搜你妹视频,你懂的
- 网站倒闭营收下滑 中国SNS陷成长烦恼
- Socket的详细介绍
- 模拟版图设计工程师要学些什么?从入门到入行,你想知道的都在这里了
- mysql latin1 utf8 java_Java读写以latin1编码存储以UTF-8输出的MySQL数据库(中文乱码)...
- linux 病毒 挖矿病毒kworkers
- c语言程序设计电子信息,电子信息类专业C语言程序设计实践教学探讨
- luogu 2344