博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj2120
阅读量:4636 次
发布时间:2019-06-09

本文共 1354 字,大约阅读时间需要 4 分钟。

莫队裸题。。

#include
#define N 10005using namespace std;int qid=0,tim=0,cx[1000005],res,block[N],ans[N],a[N];struct ask{
int l,r,t,id;}q[N];struct chan{
int x,y;}ch[1005];int cmp(ask a,ask b){ if (block[a.l]==block[b.l]) { if (a.r==b.r) return a.t
=q[i].l && ch[now].x<=q[i].r) { cx[a[ch[now].x]]--; if (cx[a[ch[now].x]]==0) res--; if (cx[ch[now].y]==0) res++; cx[ch[now].y]++; } swap(a[ch[now].x],ch[now].y);}int main(){ int n,m,i; scanf("%d%d",&n,&m); int size=sqrt(n); for (i=1;i<=n;i++) scanf("%d",&a[i]),block[i]=(i-1)/size+1; for (i=1;i<=m;i++) { int l,r;char s[5]; scanf("%s%d%d",s,&l,&r); if (s[0]=='Q'){ q[++qid].l=l; q[qid].r=r; q[qid].id=qid; q[qid].t=tim; } else ch[++tim].x=l,ch[tim].y=r; } sort(q+1,q+qid+1,cmp); int l=0,r=0,now=0; for (i=1;i<=qid;i++) { while (l
q[i].l){l--;if (cx[a[l]]==0) res++; cx[a[l]]++;} while (r
q[i].r){cx[a[r]]--;if (cx[a[r]]==0) res--; r--;} while (now
q[i].t){change(now,i);now--;} ans[q[i].id]=res; } for (i=1;i<=qid;i++) printf("%d\n",ans[i]);}
View Code

 

转载于:https://www.cnblogs.com/wjxgy/p/8480433.html

你可能感兴趣的文章
新的一年,新的开始
查看>>
python模块struct
查看>>
图像的灰度级和动态范围(转)
查看>>
C# MODBUS协议 上位机(转)
查看>>
CSS box-shadow 属性
查看>>
vue:图片切换动态显示
查看>>
04 JDK并发包相关类
查看>>
备忘录
查看>>
科协第三期
查看>>
软件工程个人作业02
查看>>
寒假刷题之5——竹简文
查看>>
Android JSON、GSON、FastJson的封装与解析
查看>>
Luogu P1340 兽径管理
查看>>
pip install 问题
查看>>
Vagrant 入门 - 配置
查看>>
Luogu P1315 观光公交
查看>>
vue-router导航守卫,限制页面访问权限
查看>>
UNDERSTANDING CALLBACK FUNCTIONS IN JAVASCRIPT
查看>>
玩法详细说明文档
查看>>
Archlinux GNOME 3 操作习惯的变更
查看>>