当前位置: 首页 > news >正文

Go to Play Maimai DX 2023牛客暑期多校训练营5 G

登录—专业IT笔试面试备考平台_牛客网

题目大意:给出一长度为n的仅由1,2,3,4组成的数组和一整数k,求一个最短的区间使得1,2,3,4至少各有一个,且4的数量>=k

1<=k<=n<=1e5

思路:用双指针l,r维护合法区间,先向右扩展r,同时记录访问过几个不同的数以及4的数量直到满足要求,然后缩短左端点l,维护当前区间内每个数的个数,直到不满足条件就记录答案

//#include<__msvc_all_public_headers.hpp>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
const int INF = 0x7fffffff;
int a[N];
int vis[5];
int main()
{ios::sync_with_stdio(false);cin.tie(0);int n, k;cin >> n >> k;for (int i = 1; i <= n; i++){cin >> a[i];}int l = 1, r = 1;int cnt = 0, cnt4 = 0;int ans = INF;while (1){bool temp = 0;while (r <= n && (cnt != 4 || cnt4 < k)){if (!vis[a[r]])cnt++;vis[a[r]]++;if (a[r] == 4)cnt4++;r++;}while(cnt==4&&cnt4>=k){		temp = 1;vis[a[l]]--;if (!vis[a[l]])cnt--;if (a[l] == 4)cnt4--;l++;}if (temp){ans = min(ans, r - l + 1);}elsebreak;}cout << ans << endl;return 0;
}

http://www.lryc.cn/news/109019.html

相关文章:

  • HTML基础铺垫
  • 【Vue3项目实战】vue3项目基于el-menu封装左侧菜单栏组件
  • MySQL正则表达式检索数据
  • vite+ts+vue3 prettier.config.js 不生效问题解决
  • Java源码规则引擎:jvs-rules 8月新增功能介绍
  • 2023年第三届工业自动化、机器人与控制工程国际会议 | IET独立出版 | EI检索
  • 14.2.2 【Linux】software, hardware RAID
  • (学习笔记-进程管理)进程
  • 《Linux从练气到飞升》No.07 Linux第一个小程序-进度条的实现
  • 【NLP概念源和流】 04-过度到RNN(第 4/20 部分)
  • 企业上云实施路线图
  • docker系列--解决hyper-v导致docker无法启动问题
  • socket server服务器开发常见的并发模型
  • 怎么修改pdf文件中的文字?分享几种编辑方法
  • spring — Spring Security 5.7与6.0差异性对比
  • 道本科技受邀参加建筑产业互联网推动建筑产业现代化体系构建座谈会,以数字化产品为建筑行业注入新动能!
  • 数据结构----效率问题
  • 【BASH】回顾与知识点梳理(五)
  • PCL点云处理之最小二乘空间直线拟合(3D) (二百零二)
  • 大数据课程G1——Hbase的概述
  • 第三章 图论 No.2单源最短路之虚拟源点,状压最短路与最短路次短路条数
  • 汉诺塔问题
  • Java on Azure Tooling 6月更新|标准消费和专用计划及本地存储账户(Azurite)支持
  • Prometheus(八)-网络嗅探-黑盒监控
  • modbus TCP 通信测试
  • GDB Debug
  • 【项目流程】前端项目的开发流程
  • JS监听浏览器关闭、刷新及切换标签页触发事件
  • Unity 引擎做残影效果——3、顶点偏移方式
  • 【Linux】权限