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

P3939 数颜色

这道题是暑假写的。但是当时数据结构学傻了,写了个莫队。
然后刚刚发现没过,连忙重新看题。
想了想发现跟可以跟Ynoi有一道区间众数题一个思路处理一下,直接二分就完了。
就记录一下每个数的出现次数。这里还有个小优化可以再记一下每个位置在vector里的下标。
这样子修改不用二分找下标,可以直接swap。
算不算Ynoi那道题的削弱版🤔

点击查看代码
#include<bits/stdc++.h>
#define p_b push_back
#define e_b emplace_back
#define ll long long
#define pii pair<int,int>
#define fir first
#define sec second
#define il inline
#define ios ios::sync_with_stdio(0),cin.tie(0)
using namespace std;
const int N=3e5+5,inf=1e9;
int n,m,a[N];
int pos[N];
vector<int>app[N];
void swap(int &x,int &y){int t=x;x=y,y=t;}
signed main(){ios;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];app[a[i]].e_b(i);pos[i]=app[a[i]].size()-1;}while(m--){int op,l,r,c;cin>>op;if(op-1){cin>>c;int c1=a[c],c2=a[c+1];if(c1==c2)continue;int p1=pos[c],p2=pos[c+1];swap(pos[c],pos[c+1]);swap(app[c1][p1],app[c2][p2]);swap(a[c],a[c+1]);}else{cin>>l>>r>>c;int k=upper_bound(app[c].begin(),app[c].end(),r)-lower_bound(app[c].begin(),app[c].end(),l);cout<<k<<'\n';}}
}
http://www.jsqmd.com/news/24905/

相关文章:

  • 完整教程:Docker 搭建 Nginx 并启用 HTTPS 具体部署流程
  • AI开发微信小程序-有感
  • 价值流智能时代:DevOps平台如何成为企业高效交付的核心引擎? - 教程
  • 2025年压力容器品牌综合实力排行榜
  • 2025年压力容器厂家综合评测与选择指南
  • 2025年口碑好的压力容器工厂/厂家前十强
  • 科幻——面包
  • 2025年中国钢结构码垛机制造商Top 5排名解析
  • 2025年钢结构码垛机品牌前十强权威盘点:江苏众利达引领智能制造新浪潮
  • 处理django.db.utils.OperationalError: attempt to write a readonly database错误
  • 10.28代码大全2
  • [GESP202509 二级] 菱形
  • 11hhs
  • linux 配置vnc
  • 2025 ICPC 成都 游记
  • 基于PSO粒子群优化算法的64QAM星座图的最优概率整形matlab仿真,对比PSO优化前后整形星座图和误码率
  • 第七周第二天7.2
  • apisix流量高峰期服务卡住问题
  • 第七周第一天7.1
  • 第六周第五天6.5
  • 在vue-markdown-render中解析LaTeX公式
  • 完整教程:IP 地址管理:IPv4 和 IPv6 地址规划、子网划分与 CIDR
  • 102302107_林诗樾_数据采集与融合技术实践作业1
  • Day25-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Threadcase-多线程讲到等待唤醒机制的一半
  • C++primer 类的静态成员
  • CSP-S NOIP 2025 备考
  • netcore vue socket.io
  • Docker安装DPanel(docker容器管理工具)
  • 2025 年最佳AI智能企业知识管理工具推荐
  • 制造业设备管理的三个坑,90% 的工厂都踩过