news 2026/7/28 16:55:40

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 16:54:59

编写程序,程序设定年度试错额度,额度内可以自由开展无收益的创新尝试,不用过度担忧成本。

年度试错额度&#xff1a;用 Python 给自己发一张“合法浪费”许可证。说明&#xff1a;本文为纯技术实践分享&#xff0c;不涉及任何课程推广、营销引流或商业产品。所有代码可在本地离线运行。一、实际应用场景描述在《心理健康与创新能力》课程中&#xff0c;有一个让我当场…

作者头像 李华
网站建设 2026/7/28 16:54:53

10分钟掌握vJoy:将键盘鼠标变成专业游戏手柄的完整指南

10分钟掌握vJoy&#xff1a;将键盘鼠标变成专业游戏手柄的完整指南 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 你是否曾经遇到过某些游戏只支持手柄操作&#xff0c;而你的键盘鼠标无法正常使用的情况&#xff1f;或者想…

作者头像 李华
网站建设 2026/7/28 16:53:18

【Matlab】量子力学波函数演化仿真程序

【Matlab】量子力学波函数演化仿真程序 一、引言 量子力学是近代物理的核心基础学科,广泛应用于量子通信、量子计算、半导体器件设计、纳米材料研究等前沿领域,与经典力学描述的确定性运动规律不同,量子体系的运动状态由波函数完整描述,粒子的位置、动量、能量等物理量均…

作者头像 李华
网站建设 2026/7/28 16:52:55

【AI大模型进阶】Autograd 自动求导:别怕,你不用自己算微积分!

【AI大模型进阶】Autograd 自动求导:别怕,你不用自己算微积分! 这是【AI大模型进阶】系列第六十九课,是理解大模型训练、参数更新、AI自我学习的终极底层核心。 在前几节课中,我们彻底掌握了PyTorch张量的创建、运算、变形、GPU加速,看懂了大模型的基础数据载体与计算逻…

作者头像 李华
网站建设 2026/7/28 16:51:39

3 连接mysql 数据库 进行数据的存储和读取

1下载node 连接模块npm i mysql -s2 在 src 下创建 conf 文件夹 用于存放配置文件 新建db.js通过环境参数的不同进行线上和线下配置const env process.env.NODE_ENV//环境参数let MYSQL_CONFif (env dev) {MYSQL_CONF {host: localhost,user: root,password: ,port: 3306,d…

作者头像 李华
网站建设 2026/7/28 16:50:46

Agentic AI时代数据库架构演进:从数据仓库到智能决策引擎

1. 理解 Agentic AI 时代数据库角色的根本性转变 在传统的软件架构中,数据库的角色相对清晰且被动:它是一个可靠、持久、用于存储和查询结构化数据的系统。开发者的核心工作是设计表结构、编写高效的 SQL、优化索引和事务。然而,随着以大型语言模型(LLM)为核心的 Agentic…

作者头像 李华