HH 的项链 bzoj-1878 SDOI-2009

题目大意:给定一个n个数的序列。m次询问,每次询问一段区间内数的种类数。

注释:$1\le n\le 5\cdot 10^4$,$1\le m\le 2\cdot 10^5$。


想法:莫队裸题。

左端点按照块编号排序,右端点按照时间戳排序。

然后每次左右指针动的时候记录桶是不是从0变成1或者从1变成0,记得更新答案。

即当前区间的答案就是莫队上的区间的答案。

最后,附上丑陋的代码... ...

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define N 50010
#define M 200010
#define V 1000010
using namespace std;
int a[N],blg[N],stack[V],ans[M];
int now;
inline char nc() {static char *p1,*p2,buf[100000]; return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;}
int rd() {int x=0; char c=nc(); while(!isdigit(c)) c=nc(); while(isdigit(c)) x=(x<<3)+(x<<1)+(c^48),c=nc(); return x;}
struct Query
{
int l,r,id;
}q[M];
inline bool cmp(const Query &x,const Query &y) {return blg[x.l]==blg[y.l]?x.r<y.r:blg[x.l]<blg[y.l];}
inline void add(int x) {if(!stack[x]) now++; stack[x]++;}
inline void del(int x) {if(stack[x]==1) now--; stack[x]--;}
int main()
{
int n=rd(); int unit=sqrt(n); int t=n/unit;
for(int i=1;i<=t;i++)
{
for(int j=(i-1)*unit+1;j<=i*unit;j++)
{
blg[j]=i; a[j]=rd();
}
}
if(unit*t<n)
{
t++;
for(int i=unit*(t-1)+1;i<=n;i++)
{
blg[i]=t; a[i]=rd();
}
}
int m=rd();
for(int i=1;i<=m;i++)
{
q[i].l=rd(),q[i].r=rd(); q[i].id=i;
}
sort(q+1,q+m+1,cmp);
int l=0,r=0; for(int i=1;i<=m;i++)
{
while(l<q[i].l) del(a[l]),l++;
while(l>q[i].l) l--,add(a[l]);
while(r<q[i].r) r++,add(a[r]);
while(r>q[i].r) del(a[r]),r--;
ans[q[i].id]=now;
}
for(int i=1;i<=m;i++) printf("%d\n",ans[i]);
return 0;
}

小结:莫队...

[bzoj1878][SDOI2009]HH的项链_莫队的更多相关文章

  1. BZOJ_1878_[SDOI2009]HH的项链_莫队

    BZOJ_1878_[SDOI2009]HH的项链_莫队 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考 ...

  2. BZOJ1878 SDOI2009 HH的项链 【莫队】

    BZOJ1878 SDOI2009 HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的 ...

  3. [luogu1972][bzoj1878][SDOI2009]HH的项链【莫队+玄学卡常】

    题目大意 静态区间查询不同数的个数. 分析 好了,成功被这道题目拉低了AC率... 打了莫队T飞掉了,真的是飞掉了QwQ. 蒟蒻想不出主席树的做法,就换成了莫队... 很多人都不知道莫队是什么... ...

  4. bzoj1878 [SDOI2009]HH的项链【莫队】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1878 以每个询问左端点所属的块的编号为第一关键字,右端点本身为第二关键字,排序,然后保利扫描 ...

  5. 洛谷 P1972 [SDOI2009]HH的项链【莫队算法学习】

    P1972 [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含 ...

  6. 【洛谷】1972:[SDOI2009]HH的项链【莫队+树状数组】

    P1972 [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含 ...

  7. BZOJ 1878 [SDOI2009]HH的项链 【莫队】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  M ...

  8. [bzoj1878][SDOI2009]HH的项链_树状数组

    HH的项链 bzoj-1878 SDOI-2009 题目大意:给定一个n个数的序列,m次查询.查询区间数的种类个数. 注释:$1\le n \le 5\cdot 10^4$,$1\le m\le 2\ ...

  9. [SDOI2009]HH的项链(莫队)

    嘟嘟嘟 这题原本莫队能过,自从某谷加强数据后好像就只能80了. 但这并不重要. (其实写这篇博客只是想记录一下莫队板子) 莫队,总而言之,离线,排序,暴力. #include<cstdio> ...

随机推荐

  1. oracle 自定义类型 type / create type

    一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2. 2.数值类型.如:int.number(p,s).integ ...

  2. 275 H-Index II H指数 II

    这是 H指数 进阶问题:如果citations 是升序的会怎样?你可以优化你的算法吗? 详见:https://leetcode.com/problems/h-index-ii/description/ ...

  3. C#基础 进制转换6/17

    二进制→十进制: 计算公式:a*20+b*21+c*22+…+m*2(n-1) 公式中a为二进制数右边第一位数,b为第二位数,以此类推 例:二进制1011010转换为十进制数为 0*20+1*21+0 ...

  4. 关于 VS 调用存储过程加载很慢和SQL 执行很快的那些事

    执行同样的存储过程,调用同样的参数 在VS 中调用存储过程和传参后,到数据加载需要20秒或更多, 在SQL直接调用则不到一秒,同一个存储过程为什么有这么大的区别呢? 原因:存储过程计划失效的原因 产生 ...

  5. 使ThinkPHP(3.2.3)的分页类支持Bootstrap风格

    ThinkPHP 3.2.3自带的分页类位于:/ThinkPHP/Library/Think/Pages.class.php ,官方文档在这里:ThinkPHP3.2.3数据分页 Pages.clas ...

  6. R语言学习 - 热图简化

    绘制热图除了使用ggplot2,还可以有其它的包或函数,比如pheatmap::pheatmap (pheatmap包中的pheatmap函数).gplots::heatmap.2等.   相比于gg ...

  7. CAD得到指定条件的实体

    主要用到函数说明: IMxDrawSelectionSet::Select2 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARI ...

  8. 梦想CAD控件安卓交互绘图

    在cad使用过程中,动态绘制的使用会使我们绘图速度大大加快.在此演示中,我们绘制了直线.多段线.点.样条线.圆.圆弧.椭圆.椭圆弧等实体. 用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明 ...

  9. WebAssembly 上手

    安装 Mac 上最便捷的安装方式当然是通过 Homebrew: $ brew install emscripten 安装好之后讲道理就已经自动配置好一切,然后 emcc 命令便可用了. 下面看非 Ho ...

  10. Duboo学习-SPI

    待补充 现将Dubbo-SPI相关源码流程图更新