题面

解析

这题也就是一个带修改的莫队啊啊!!

所以,我们只需要在普通莫队上加上一维时间即可。

怎么加呢?

只需要记录下每次修改和查询的时间,

在左右端点跳跃的同时,也将时间跳到询问的时间就行了。

具体看代码吧:

// luogu-judger-enable-o2
#include<bits/stdc++.h>
using namespace std;inline int read(){int sum=0,f=1;char ch=getchar();while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9'){sum=sum*10+ch-'0';ch=getchar();}return f*sum;
}struct node{int l,r,id,ti;
}q[100001];
struct chang{int pla/*第几支笔*/,to/*颜色*/;
}c[100001];
int n,m,qsum,csum;
int l,r,timn,gap;
int a[100001],ans=0,bl[100001];
int sum[1000001];
int ansn[100001];
char opt[5];bool cmp(node a,node b)
{if(bl[a.l] == bl[b.l]){if(bl[a.r] == bl[b.r]) return a.ti < b.ti;return a.r < b.r; }return a.l < b.l;
}inline void add(int x){if(!(sum[a[x]]++)) ans++;
}inline void del(int x){if(!(--sum[a[x]])) ans--;
}inline void change(int ti,int i){if(c[ti].pla>=q[i].l&&c[ti].pla<=q[i].r) {if(!(--sum[a[c[ti].pla]])) ans--;if(!(sum[c[ti].to]++)) ans++;}swap(a[c[ti].pla],c[ti].to);
}int main(){//freopen("data12.in","r",stdin);n=read();m=read();gap=n/sqrt(m*2.0/3.0);//gap=sqrt(n);for(int i=1;i<=n;i++) bl[i]=(i-1)/gap+1; for(int i=1;i<=n;i++) a[i]=read();for(int i=1;i<=m;i++){cin>>opt;if(opt[0]=='Q'){q[++qsum].id=qsum;q[qsum].l=read();q[qsum].r=read();q[qsum].ti=csum;}else if(opt[0]=='R'){c[++csum].pla=read();c[csum].to=read();}ansn[q[i].id]=ans;}sort(q+1,q+qsum+1,cmp);l=1;r=0;timn=0;for(int i=1;i<=qsum;i++){int ql=q[i].l,qr=q[i].r;int qtime=q[i].ti;while(l<ql) del(l++);while(l>ql) add(--l);   while(r>qr) del(r--);        while(r<qr) add(++r);while(timn<qtime) change(++timn,i);while(timn>qtime) change(timn--,i);        ansn[q[i].id]=ans;}for(int i=1;i<=qsum;i++){printf("%d\n",ansn[i]);}return 0;
}

转载于:https://www.cnblogs.com/zsq259/p/10563632.html

题解 【国家集训队2011】数颜色相关推荐

  1. happiness[国家集训队2011(吴确)]

    [试题来源] 2011中国国家集训队命题答辩 [问题描述] 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科 ...

  2. 国家集训队2011 happiness

    [试题来源] 2011中国国家集训队命题答辩 [问题描述] 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科 ...

  3. [国家集训队2011]跳跳棋

    P1852 [国家集训队]跳跳棋https://www.luogu.org/problemnew/show/P1852 Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不 ...

  4. [国家集训队2011]稳定婚姻(无向图定向)

    题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的姗姗和男友谈恋爱半年就结婚,结婚不到 ...

  5. [国家集训队2011]拆迁队nbsp;解题报告

    题目: http://cogs.pro/cogs/problem/problem.php?pid=1859 lanxisi带领着他的拆迁队来整治一个街道.这个街道由N个旧房子组成,从左到右编号为1.. ...

  6. 【COGS 1873】 [国家集训队2011]happiness(吴确) 最小割

    这是一种最小割模型,就是对称三角,中间双向边,我们必须满足其最小割就是满足题目条件的互斥关系的最小舍弃,在这道题里面我们S表示文T表示理,中间一排点是每个人,每个人向两边连其选文或者选理的价值,中间每 ...

  7. 【国家集训队2011】【BZOJ2141】排队

    Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和.红星幼儿园的小朋友们排起了长长地队伍,准备吃果果.不过因为小朋友们的 ...

  8. bzoj2144 【国家集训队2011】跳跳棋

    Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.我们要通过最少的跳动把他 ...

  9. [国家集训队]数颜色

    [国家集训队]数颜色 题解 很水的一道带修莫队板子题. 我们只需要将操作时间看作是当前询问的第三维,排序后跑莫队即可. 三维莫队块长为n23n^{\frac{2}{3}}n32​时时间复杂度是最优的, ...

最新文章

  1. react router 路由守卫_react实现hash路由
  2. Gibbs sampling [Gibbs采样]
  3. htpasswd java_mod_rewrite,reverseProxy和.Htpasswd
  4. Qt + Python + OpenCV图标替换工具 之 Python调用dll(三)
  5. Java实现升序排列的整形数组A,元素两两不相等找出A[i]=i的数据
  6. python编程一球从100米_Python练习题 015:一颗自由落地的球
  7. html里面textfield属性,StyleableTextField的CSS属性htmlText
  8. 浙大PAT CCCC L3-014 周游世界 ( 最短路变形 )
  9. 【leetcode】535. Encode and Decode TinyURL
  10. 在串口输入input keyevent发送按键值给机器
  11. 值得推荐的C/C++框架和库(转)
  12. 专题七:MATLAB符号计算
  13. 视酷酷信即时通讯im私密端对端加密聊天,多语言IM即时通讯源码 支持7端互通通讯带教程源码
  14. 创建数独小游戏uniapp/vue
  15. 【C++ 程序】 复数类 (Complex)
  16. 小布语音下载安装_小布语音助手
  17. Aladdin推出软件智能卡和一次性密码认证解决方案
  18. Python opencv:实现与自己同框对话的视频特效
  19. 计算机系学生橱窗分析结果怎么写,2015年高职学生职业生涯规划书
  20. 企业人才测评结果的三种导向分析

热门文章

  1. bootloader启动流程分析
  2. 最新车载导航端口检测工具_高德地图这个功能 把微信都没做好的车载社交解决了?...
  3. python 播放声音_如何用Python播放声音?
  4. 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度
  5. 数据结构之并查集:UF-Tree优化并查集——19
  6. 数据结构之平衡树:红黑树的介绍与Python代码实现——17
  7. React Hooks的使用(一)——useState、useEffect解析
  8. 七、PHP框架Laravel学习笔记——资源控制器
  9. python web开发 网络编程 TCP/IP UDP协议
  10. 天池 在线编程 排名查询