十分玄学的数据结构~

code:

#include <bits/stdc++.h>
#define N 1000006
#define setIO(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
using namespace std;
int n,m,ans,B,cnt,tot,now;
int a[N],tim[N],output[N];
struct query
{
int l,r,t,id;
bool operator<(query b) const
{
return l/B==b.l/B?(r/B==b.r/B?t<b.t:r<b.r):l<b.l;
}
}q[N];
struct change
{
int p,col;
}c[N];
void add(int x)
{
if(tim[x]==0) ++ans;
++tim[x];
}
void del(int x)
{
if(tim[x]==1) --ans;
--tim[x];
}
void work(int x,int d)
{
// 需要进行变动
if(c[d].p>=q[x].l&&c[d].p<=q[x].r) del(a[c[d].p]), add(c[d].col);
swap(c[d].col, a[c[d].p]);
}
int main()
{
// setIO("input");
int i,j,l=2,r=1;
scanf("%d%d",&n,&m);
B=pow(n,0.6666);
for(i=1;i<=n;++i) scanf("%d",&a[i]);
for(i=1;i<=m;++i)
{
char op[2];
scanf("%s",op);
if(op[0]=='Q')
{
++cnt;
scanf("%d%d",&q[cnt].l,&q[cnt].r);
q[cnt].id=cnt;
q[cnt].t=tot;
}
else
{
++tot;
scanf("%d%d",&c[tot].p,&c[tot].col);
}
}
sort(q+1,q+1+cnt);
for(i=1;i<=cnt;++i)
{
for(;l>q[i].l;) add(a[--l]);
for(;r<q[i].r;) add(a[++r]);
for(;l<q[i].l;) del(a[l++]);
for(;r>q[i].r;) del(a[r--]);
for(;now<q[i].t;) work(i, ++now);
for(;now>q[i].t;) work(i, now--);
output[q[i].id]=ans;
}
for(i=1;i<=cnt;++i) printf("%d\n",output[i]);
return 0;
}

  

最新文章

  1. Django models .all .values .values_list 几种数据查询结果的对比
  2. DB2用一张表更新其他表的数据
  3. 基于openssl的单向和双向认证
  4. MySQL 字符串截取相关函数
  5. linux中proc文件系统 -- ldd3读书笔记
  6. SQL Server数据库备份(本机)
  7. sql视图学习笔记--视图
  8. datagridview bindingsource
  9. 分析器错误消息: 未能加载类型“WebApplication._Default”
  10. linux下启动和关闭网卡命令及DHCP上网
  11. 关于KeyEvent.Callback
  12. eclipse内存溢出设置
  13. 扎实基础之从零开始-Nginx集群分布式.NET应用
  14. iOS开发中UIPopoverController的使用详解
  15. JS的replace默认只替换第一个匹配项
  16. JS-预解析(提升)与代码执行过程
  17. proxyTable设置代理解决跨域问题
  18. linux下zip文件解压乱码的问题
  19. android ROM刷机updater-script单刷补丁包脚本
  20. nginx空白图片(empty_gif模块)

热门文章

  1. Python反射和内置方法(双下方法)
  2. Go语言学习笔记(7)——函数和方法
  3. Mac电脑配置相关及软件工具安装推荐
  4. Foxmail7.2的账号密码的备份与恢复
  5. ORA-07445: exception encountered: core dump [opiaba()+639] [SIGSEGV] [ADDR:0x0] [PC:0x1858C3F] [SI_KERNEL(general_protection)] []
  6. Unity中的Character Controller
  7. CAN总线上的消息单帧某个信号的值计算(C#)
  8. HotSpot JVM目录
  9. 关于GPU的传输速度与什么有关??
  10. Docker启动Elasticsearch报错vm.max_map_count