AC日记——【模板】分块/带修改莫队(数颜色) 洛谷 P1903
思路:
带修改莫队;
(伏地膜xxy);
代码:
#include <bits/stdc++.h>
using namespace std;
#define maxn 1000005
#define maxnum 1000005
int bel[maxn],blo;
struct QueryType {
int l,r,k,id;
bool operator<(const QueryType pos)const
{
if(bel[l]==bel[pos.l])
{
if(bel[r]==bel[pos.r]) return k<pos.k;
else return bel[r]<bel[pos.r];
}
else return bel[l]<bel[pos.l];
}
};
struct QueryType qu[maxn];
int n,m,ai[maxn],now,num[maxnum],ans[maxn];
int ch[maxn],to[maxn],back[maxn],cntq,cntc;
int l=,r,k;
inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
}
inline void updatak(int x,bool di)
{
if(di)
{
back[x]=ai[to[x]];
ai[to[x]]=ch[x];
if(to[x]<=r&&to[x]>=l)
{
num[back[x]]--;
if(!num[back[x]]) now--;
num[ch[x]]++;
if(num[ch[x]]==) now++;
}
}
else
{
ai[to[x]]=back[x];
if(to[x]<=r&&to[x]>=l)
{
num[ch[x]]--;
if(!num[ch[x]]) now--;
num[back[x]]++;
if(num[back[x]]==) now++;
}
}
}
inline void updata(int x,bool di)
{
x=ai[x];
if(di)
{
if(!num[x])now++;
num[x]++;
}
else
{
if(num[x]==)now--;
num[x]--;
}
}
int main()
{
in(n),in(m),blo=sqrt(n);
for(int i=;i<=n;i++) in(ai[i]),bel[i]=(i-)/blo;
char op[];
for(int i=;i<=m;i++)
{
scanf("%s",op);
if(op[]=='Q')
{
in(qu[++cntq].l);
in(qu[cntq].r);
if(qu[cntq].l>qu[cntq].r)
{
swap(qu[cntq].l,qu[cntq].r);
}
qu[cntq].id=cntq;
qu[cntq].k=cntc;
}
else in(to[++cntc]),in(ch[cntc]);
}
sort(qu+,qu+cntq+);
for(int i=;i<=cntq;i++)
{
while(k<qu[i].k) updatak(++k,true);
while(k>qu[i].k) updatak(k--,false);
while(r<qu[i].r) updata(++r,true);
while(r>qu[i].r) updata(r--,false);
while(l<qu[i].l) updata(l++,false);
while(l>qu[i].l) updata(--l,true);
ans[qu[i].id]=now;
}
for(int i=;i<=cntq;i++) printf("%d\n",ans[i]);
return ;
}
AC日记——【模板】分块/带修改莫队(数颜色) 洛谷 P1903的更多相关文章
- 莫队 [洛谷2709] 小B的询问[洛谷1903]【模板】分块/带修改莫队(数颜色)
莫队--------一个优雅的暴力 莫队是一个可以在O(n√n)内求出绝大部分无修改的离线的区间问题的答案(只要问题满足转移是O(1)的)即你已知区间[l,r]的解,能在O(1)的时间内求出[l-1, ...
- 【BZOJ】4129: Haruna’s Breakfast 树分块+带修改莫队算法
[题意]给定n个节点的树,每个节点有一个数字ai,m次操作:修改一个节点的数字,或询问一条树链的数字集合的mex值.n,m<=5*10^4,0<=ai<=10^9. [算法]树分块+ ...
- 【BZOJ】3052: [wc2013]糖果公园 树分块+带修改莫队算法
[题目]#58. [WC2013]糖果公园 [题意]给定n个点的树,m种糖果,每个点有糖果ci.给定n个数wi和m个数vi,第i颗糖果第j次品尝的价值是v(i)*w(j).q次询问一条链上每个点价值的 ...
- 洛谷 P1903 BZOJ 2120 清橙 A1274【模板】分块/带修改莫队(数颜色)(周奕超)
试题来源 2011中国国家集训队命题答辩 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔 ...
- P1903 【模板】分块/带修改莫队(数颜色)
题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2 ...
- 洛谷 P1903 【模板】分块/带修改莫队(数颜色)
题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2 ...
- luogu1903 【模板】分块/带修改莫队(数颜色)
莫队算法模板 推荐阅读这篇博客 #include <algorithm> #include <iostream> #include <cstdio> #includ ...
- BZOJ.2453.维护队列([模板]带修改莫队)
题目链接 带修改莫队: 普通莫队的扩展,依旧从[l,r,t]怎么转移到[l+1,r,t],[l,r+1,t],[l,r,t+1]去考虑 对于当前所在的区间维护一个vis[l~r]=1,在修改值时根据是 ...
- BZOJ2120 数颜色(带修改莫队)
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
随机推荐
- SFM
1.相机模型,内参数和外参数矩阵,相机标定: 2.极线约束和本征矩阵:特征点提取与匹配:提取到的特征点计算本征矩阵(五对以上的点)findEssentialMat(),需啊要点对,焦距参数,cx,cy ...
- UIScrollView控件及其三个常用属性:contentSize、contentInset和contentOffset
如果您对UIScrollView控件感到难以理解,下面是本人自己对UIScrollView控件的理解方式,按照我的思路,理解UIScrollView控件非常容易! 我对UIScrollView的构成理 ...
- stout代码分析之六:Stopwatch
在进行性能测试时,经常需要计算某个函数执行的时长.stout中的Stopwatch类可实现纳秒精度的计时. Stopwatch内部使用timespec记录开始和技术时间. timeval和time ...
- 神经网络CNN训练心得--调参经验
1.样本要随机化,防止大数据淹没小数据 2.样本要做归一化.关于归一化的好处请参考:为何需要归一化处理3.激活函数要视样本输入选择(多层神经网络一般使用relu)4.mini batch很重要,几百是 ...
- Foxmail安装和登录
Foxmail安装和登录... ============================== 下载Foxmail客户端:http://www.foxmail.com/ ================ ...
- Linux(CentOS6.7) 安装MySql5.7数据库 图文教程
linux(CentOS6.7) 环境Mysql 5.7.17安装教程分享给大家,供大家参考,具体内容如下: 1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/ ...
- POJ 2823 Sliding Window ST RMQ
Description An array of size n ≤ 106 is given to you. There is a sliding window of size k which is m ...
- [洛谷P3761] [TJOI2017]城市
洛谷题目链接:[TJOI2017]城市 题目描述 从加里敦大学城市规划专业毕业的小明来到了一个地区城市规划局工作.这个地区一共有ri座城市,<-1条高速公路,保证了任意两运城市之间都可以通过高速 ...
- [洛谷P3304] [SDOI2013]直径
洛谷题目链接:[SDOI2013]直径 题目描述 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节点,可以证明其有且仅 ...
- vue_真机调试页面
使用vue开发也有一段时间,是说我太懒了,还是说太懒了.得总结总结的. 之前在开发的时候都是,npm run build把页面打包后再上传到代码库上线用手机看页面效果.样式调整,嗯,很麻烦很傻的. 今 ...