题目

传送门:QWQ

分析

已经凉凉。看错数据范围敲了发莫队........

和HH的项链差不多,把每种颜色之前的颜色到再之前的颜色这段区间 区间加。

区间加就树状数组特技

代码

#include <bits/stdc++.h>
const int maxn=2e6+;
using namespace std;
struct data{
int num,l,r;
}Q[maxn];
int c[maxn],ans[maxn],pre[maxn],front[maxn],bit[maxn];
int n,m,o;
bool cmp(data a,data b){
return a.r<b.r;
}
void add(int x,int a){if(!x)return; for(;x<=n;x+=x&-x) bit[x]+=a; }
int sum(int x){int ans=; for(;x>;x-=x&-x) ans+=bit[x]; return ans;}
int main(){
scanf("%d%d%d",&n,&o,&m);
for(int i=;i<=n;i++) scanf("%d",&c[i]);
for(int i=;i<=m;i++){
scanf("%d%d",&Q[i].l,&Q[i].r);
Q[i].num=i;
}
sort(Q+,Q++m,cmp);
int now=;
for(int i=;i<=m;i++){
pre[i]=front[c[i]]; front[c[i]]=i;
add(pre[pre[i]],-); add(pre[i],);
while(Q[now].r==i) ans[Q[now].num]=sum(i)-sum(Q[now].l-),now++;
}
for(int i=;i<=m;i++){
printf("%d\n",ans[i]);
}
return ;
}

【BZOJ】2743: [HEOI2012]采花(树状数组)的更多相关文章

  1. BZOJ 2743: [HEOI2012]采花 [树状数组 | 主席树]

    题意: 查询区间中出现次数$>2$的颜色个数 一眼主席树,区间中$l \le last[i] \le r$的个数减去$l \le last[last[i]] \le r$的个数,搞两颗主席树来做 ...

  2. [bzoj2743][HEOI2012]采花(树状数组+离线)

    2743: [HEOI2012]采花 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 1832  Solved: 954[Submit][Status] ...

  3. [HEOI2012]采花 树状数组 BZOJ 2743

    题目描述 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花. 花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于 ...

  4. 【bzoj2743】[HEOI2012]采花 树状数组

    题目描述 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公 ...

  5. [BZOJ2743] [HEOI2012] 采花 (树状数组)

    Description 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一 ...

  6. bzoj2743 [HEOI2012]采花——树状数组+离线

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2743 和 HH的项链 那道题很像,也是类似的做法: 但不同的是这里的点只有有前驱时才起作用: ...

  7. BZOJ 2743: [HEOI2012]采花 离线树状数组

    2743: [HEOI2012]采花 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2743 Description 萧芸斓是Z国的公主, ...

  8. BZOJ 2743: [HEOI2012]采花

    2743: [HEOI2012]采花 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 2056  Solved: 1059[Submit][Status ...

  9. BZOJ 2743: [HEOI2012]采花( 离线 + BIT )

    处理出每个数下一个出现的位置, 然后按左端点排序回答询问.处理当前数去除的影响 ------------------------------------------------------------ ...

  10. bzoj 2743: [HEOI2012]采花【树状数组】

    离线,按照l排序 注意到在区间里出现两次的颜色才有贡献,所以记录一个ne[i]表示i后第一个和i同色的花,维护一个l,每次处理询问的时候l单调右移,树状数组维护,在ne[ne[i]]位置++,在ne[ ...

随机推荐

  1. LINUX系统下的squid服务

    一.squid服务实现正向代理 正向代理,是一个位于客户端和原始服务器之间的服务器. 客户端可以通过服务器的缓存数据,得到所需的结果. 示例:在一台可以联网的主机上,安装squid软件之后,就可以在另 ...

  2. node 项目材料 集合

    resfull 与 token node生成 跨平台 验证码图片 搭建简单的服务器

  3. C# 如何判断字符串中是否包含另一个字符串?

    如  字符串1(str1)为:“你好怎么解决呢!”    字符串2(str2)为:“你好” 如果str1里面包str2 则 Response.Write("成功");否则 Resp ...

  4. debug运行java程序报错

    debug运行java程序报错 ERROR: transport error 202: connect failed: Connection timed out ERROR: JDWP Transpo ...

  5. Java并发编程之读写锁

    读写锁维护了一对相关的锁,一个用于只读操作,一个用于写入操作.只要没有writer,读取锁可以由多个reader线程同时保持.写入锁是独占的. 可重入读写锁 ReentrantReadWriteLoc ...

  6. 重写alert 方法(我胡汉三又回来了)

    window.alert = function (txt) { var shield = document.createElement("DIV"); shield.id = &q ...

  7. rabbitMQ高可用

    镜像模式 镜像模式和普通模式的区别就是,队列的数据都镜像了一份到所有的节点上.这样任何一个节点失效,不会影响整个集群的使用. 在实现上,mirror queue内部有一套选举算法,会选出一个maste ...

  8. linux 系统优化+定时任务

    安装软件 通过yum安装 自动补全工具:yum completion yum install -y tree bash-completion wget vim find -[TAB] 更改系统的yum ...

  9. 【剑指offer-25】合并两个单调递增的链表,C++实现(链表)

    原创博客,转载请注明出处! 1.题目 输入两个单调递增的链表,输出两个链表合成后的链表(单调不减). 2.思路(递归) # 鲁棒性: 如果链表1是空链表,则直接输出链表2. 如果链表2是空链表,则直接 ...

  10. 【集成学习】sklearn中xgboost模块中plot_importance函数(绘图--特征重要性)

    直接上代码,简单 # -*- coding: utf-8 -*- """ ################################################ ...