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

洛谷P3709 大爷的字符串题 莫队

给出nnn个数,以及mmm个询问,每次询问一个区间里面众数的次数。值域范围不超过1e91e91e9
由于只有nnn个数,考虑对所有的数离散化。然后莫队对区间排序。记录每个数出现的次数num[x]num[x]num[x],同时也记录下出现次数为xxx的数总共有cnt[x]cnt[x]cnt[x]个。增加的时候直接用num[x]num[x]num[x]暴力更新,删除的时候判定一下条件,如果num[x]num[x]num[x]为当前答案,并且cnt[num[x]]==1cnt[num[x]]==1cnt[num[x]]==1,那么原答案−1-11

#include<bits/stdc++.h> using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; const ll INF=LONG_LONG_MAX; const int N=2e5+7; int res=0; int a[N],b[N],bk[N]; int ans[N]; int num[N]; // 每个数出现次数 int cnt[N]; // 出现次数i多少个 struct Query { int l,r,id; bool operator <(const Query &rhs) const { return bk[l]==bk[rhs.l]?r<rhs.r:l<rhs.l; } }q[N]; void add(int x) { cnt[num[x]]--; cnt[num[x]+1]++; num[x]++; res=max(res,num[x]); } void del(int x) { if(res==num[x]&&cnt[num[x]]==1) res--; cnt[num[x]]--; cnt[num[x]-1]++; num[x]--; } int main() { int n,m; scanf("%d%d",&n,&m); int block=sqrt(n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); b[i]=a[i]; bk[i]=i/block; } sort(b+1,b+1+n); int tot=unique(b+1,b+1+n)-(b+1); for(int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+1+tot,a[i])-b; for(int i=1;i<=m;i++) { scanf("%d%d",&q[i].l,&q[i].r); q[i].id=i; } sort(q+1,q+1+m); int l=1,r=0; for(int i=1;i<=m;i++) { while(l>q[i].l) l--,add(a[l]); while(r<q[i].r) r++,add(a[r]); while(l<q[i].l) del(a[l]),l++; while(r>q[i].r) del(a[r]),r--; ans[q[i].id]=res; } for(int i=1;i<=m;i++) printf("%d\n",-ans[i]); return 0; }
http://www.cnnetsun.cn/news/3712876.html

相关文章:

  • 编写程序,程序设定年度试错额度,额度内可以自由开展无收益的创新尝试,不用过度担忧成本。
  • 10分钟掌握vJoy:将键盘鼠标变成专业游戏手柄的完整指南
  • 【Matlab】量子力学波函数演化仿真程序
  • 【AI大模型进阶】Autograd 自动求导:别怕,你不用自己算微积分!
  • 3 连接mysql 数据库 进行数据的存储和读取
  • Agentic AI时代数据库架构演进:从数据仓库到智能决策引擎
  • 1. 准备工作
  • 服务计算--配置云桌面遇到的坑
  • 前端打包体积优化:Tree Shaking、代码分割与按需加载的深度实践
  • Q-learning在无人机三维路径规划中的MATLAB实现
  • 三菱FX5u PLC控制4轴伺服定位系统实战解析
  • RBAC表设计
  • 技术专家如何突破职业瓶颈:从编码到协作的转变
  • Oracle的sql语句3
  • 物联网安全:SE050与PIC18F46K22硬件加密方案
  • Python串口通信实战:PySerial库应用与物联网开发
  • 3步轻松下载B站视频:大会员4K和充电专属视频离线观看指南
  • 物联网设备硬件安全方案:SE050芯片实战指南
  • 【linux】CentOS 报错:There are no enabled repos;yum repolist为0,yum list 正常,yum 安装无法使用的解决方法
  • 直流、步进、伺服电机选型指南:从原理到实战,告别选型难题
  • PUBG-Logitech压枪脚本:从零开始打造你的智能射击辅助系统
  • 破局的第一性原理
  • 元素垂直居中
  • 2026年|外贸人必看!热门外贸独立站谷歌SEO服务商深度测评
  • 如何高效应用Poppins字体:面向初学者的完整实践指南
  • 专科生降低AI检测率的实用技巧与工具测评
  • 从Java后端到大模型开发:工程师转型实战指南
  • 为什么你的AI副业总在加班?:4类时间伪勤奋诊断表+实时监控SOP,今晚就能启用
  • ESP32-C6点灯报错全解析:从环境搭建到代码调试的完整排错指南
  • TPIC7710EVM评估板实战指南:从硬件解析到软件调试的汽车电子电机驱动验证