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

G1: Yunli‘s Subarray Queries (easy version)(1900)(定长区间众数)

在这里插入图片描述

思路:因为是定长区间,因此我们可以利用滑动窗口维护定长区间的众数的数量

AC代码:

#include<bits/stdc++.h>using namespace std;typedef long long ll;
const int MOD = 998244353;
const int N = 2e5 + 10;ll a[N];
ll b[N];//前i个数的相同的数的最大值
int main()
{int t;cin >> t;while(t --){ll n, k, q;cin >> n >> k >> q;for(int i = 1; i <= n; i ++){cin >> a[i];a[i] -= i;}//求每个区间为k的区间众数的数量//看到定长想到滑动区间map<ll, ll>ma, cnt;//记录数量for(int i = 1; i <= n; i ++){if(cnt.count(ma[a[i]]))//相当于对右边界进行操作{cnt[ma[a[i]]] -= 1;if(!cnt[ma[a[i]]]) cnt.erase(ma[a[i]]);}ma[a[i]] += 1;cnt[ma[a[i]]] += 1;//前k个数还没到达窗口最远if(i < k) continue;//因为区间长度已经确定为k了,因此我们确定了左区间,右区间也随之确定了b[i - k + 1] = cnt.rbegin() ->first;//代表反向开始的第一个元素,即众数//	cout << b[1] << "sss" << endl;cnt[ma[a[i - k + 1]]] -= 1;//因为开始窗口滑动了因此也需要考虑左边界了if(!cnt[ma[a[i - k + 1]]]) cnt.erase(ma[a[i - k + 1]]);ma[a[i - k + 1]]  -= 1;//左边界ma也要参与了if(ma[a[i - k + 1]]) cnt[ma[a[i - k + 1]]] += 1;}while(q --){ll l, r;cin >> l >> r;cout << k - b[l] << endl;}}return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringCloud的学习,Consul服务注册与发现、分布式配置,以及 服务调用和负载均衡
  • 【自动化测试】UI自动化的分类、如何选择合适的自动化测试工具以及其中appium的设计理念、引擎和引擎如何工作
  • Ubuntu 22.04 LTS 上安装 Docker
  • 使用jmeter做性能测试实践过程中需要注意什么
  • FreeRTOS学习笔记(七)信号量
  • 《C++代码高度优化之双刃剑:避免过度优化引发的“暗雷”》
  • MySQL中的redo log、 undo log、bin log
  • flink中startNewChain() 的详解
  • 【计网】从零开始使用UDP进行socket编程 --- 服务端业务实现
  • 相亲交友中的用户画像构建方法探讨
  • cfs三层靶机——内网渗透
  • centos中yum方式部署Jenkins
  • git github仓库管理
  • idea激活页面怎么打开
  • 搜索二叉树BSTree的原理及实现
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • Android Studio:GIT提交项目到远程仓库
  • create-react-app做的留言板
  • CSS实用技巧干货
  • IndexedDB
  • JSONP原理
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Mysql数据库的条件查询语句
  • Python socket服务器端、客户端传送信息
  • Python利用正则抓取网页内容保存到本地
  • TypeScript实现数据结构(一)栈,队列,链表
  • ubuntu 下nginx安装 并支持https协议
  • 创建一个Struts2项目maven 方式
  • 关于使用markdown的方法(引自CSDN教程)
  • 回顾2016
  • 回流、重绘及其优化
  • 前端js -- this指向总结。
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 数据仓库的几种建模方法
  • 在Unity中实现一个简单的消息管理器
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 选择阿里云数据库HBase版十大理由
  • ​520就是要宠粉,你的心头书我买单
  • ​TypeScript都不会用,也敢说会前端?
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #define
  • #大学#套接字
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)Jupyter Notebook 下载及安装
  • (11)MSP430F5529 定时器B
  • (55)MOS管专题--->(10)MOS管的封装
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)fread与fwrite详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)