传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1878

以每个询问左端点所属的块的编号为第一关键字,右端点本身为第二关键字,排序,然后保利扫描,先移动右指针。

(逻辑相等号写成赋值号,调了1个小时,天呐,上次犯这个错误是多久以前了呀?)

#include <cstdio>
#include <algorithm>
#include <cmath> const int maxn = 50005, maxm = 200005; int n, m, a[maxn], ans[maxm], siz, ima, left, right, book[1000005];
struct query {
int l, r, id;
} b[maxm]; bool cmp(const query & aa, const query & ss) {
if (aa.l / siz == ss.l / siz) {
return aa.r < ss.r;
}
return aa.l / siz < ss.l / siz;
} int main(void) {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
scanf("%d", &n);
siz = (int)sqrt((float)n + 0.5f);
for (int i = 1; i <= n; ++i) {
scanf("%d", a + i);
}
scanf("%d", &m);
for (int i = 1; i <= m; ++i) {
scanf("%d%d", &b[i].l, &b[i].r);
b[i].id = i;
}
std::sort(b + 1, b + m + 1, cmp); //a[0] = 1000003;
book[a[0]] = 1;
ima = 1;
for (int i = 1; i <= m; ++i) {
while (right < b[i].r) {
++right;
if (++book[a[right]] == 1) {
++ima;
}
}
while (right > b[i].r) {
if (--book[a[right]] == 0) {
--ima;
}
--right;
}
while (left < b[i].l) {
if (--book[a[left]] == 0) {
--ima;
}
++left;
}
while (left > b[i].l) {
--left;
if (++book[a[left]] == 1) {
++ima;
}
}
ans[b[i].id] = ima;
} for (int i = 1; i <= m; ++i) {
printf("%d\n", ans[i]);
}
return 0;
}

  

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

  1. BZOJ1878 [SDOI2009] HH的项链 [莫队,卡常]

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

  2. [BZOJ1878][SDOI2009]HH的项链 莫队

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1878 不带修改的莫队,用一个桶记录一下当前区间中每种颜色的数量就可以做到$O(1)$更新了 ...

  3. BZOJ1878[SDOI2009]HH的项链+莫队算法模板

    题意:多次询问,求在一个区间中,有多少种珠子: 思路:莫队算法模板题目: 参考:https://www.cnblogs.com/RabbitHu/p/MoDuiTutorial.html #inclu ...

  4. [bzoj1878][SDOI2009][HH的项链] (莫队算法)

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

  5. Bzoj 1878: [SDOI2009]HH的项链 莫队

    1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2717  Solved: 1363[Submit][Statu ...

  6. [SDOI2009] HH的项链 | 莫队模板

    题目链接:戳我 题意:求区间中不同颜色的种类数 因为是要过知识点,所以又把这题拿出来做了一遍......这里就写两种方法吧 主席树做法 设pre[i]为第i个点上的颜色在前面序列中出现的最晚的一次的位 ...

  7. P1972 [SDOI2009]HH的项链 莫队or树状数组

    用什么树状数组莫队多帅 思路:树状数组\(or\)莫队(其实还是推荐树状数组\(QwQ\)) 提交:我告诉你我卡了一会儿常 卡不满原因:没有用奇偶性排序 题解: 莫队: 就是裸的莫队,把询问排序\(e ...

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

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

  9. bzoj千题计划181:bzoj1878: [SDOI2009]HH的项链

    http://www.lydsy.com/JudgeOnline/problem.php?id=1878 之前用莫队做的,现在用树状数组 把每种数的第一个出现位置在树状数组中+1 nxt[i] 记录i ...

  10. BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)

    1878: [SDOI2009]HH的项链 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 Description: HH有一串由 ...

随机推荐

  1. Ajax的简单实现(JQuary)

    还是之前的例子,相对来说,用JQ就简单了很多,真的多,因为JQ直接把方法都写好了,直接调用就行了,,ԾㅂԾ,, php文件就不需要多做修改了,如下: <?php //改变Content-Type ...

  2. LeetCode(3)题解: Longest Palindromic Substring

    https://leetcode.com/problems/longest-palindromic-substring/ 题目: Given a string S, find the longest ...

  3. sendmessage传递数组

    1.在初始化数组尤其是需要每次都初始化的时候,很多同学使用循环来进行,这样不但速度慢,而且写起来也很长.所以现在提供一个函数来实现这个功能... 原型:extern void *memset(void ...

  4. 设计模式学习笔记——Observer观察者模式

    观察者模式里面有两个东西:观察者(Observer)和目标(Subject).当目标发生变化的时候,观察者随之起舞,也作出相应的变化.此为观察者模式. 这是怎么做到的?主要是目标里面存有一份观察者的名 ...

  5. Java 深拷贝浅拷贝 与 序列化

    一.浅拷贝.深拷贝 浅拷贝会对对象中的成员变量进行拷贝:如果是基本类型,拷贝的就是基本类型的值:如果属性是内存地址(引用类型),拷贝的就是内存地址 : 深拷贝,除了基本类型外,引用类型所引用的对象也会 ...

  6. vue中引入字体文件

    在用vue来写一官网的时候,想引入外部字体文件,毕竟总感觉他自己的字体有点难看,在这里记录下 1.先下载字体文件所需的.ttf文件 我这里想引入的是华文行楷字体 百度后下载了一个3M多的ttf文件 2 ...

  7. python读取一个文件的每一行判断是否为素数,并把结果写到另一个文件中

    刚刚学习python的菜鸟,这道题包括:文件的读写,python的参数调用,异常的使用,函数的使用 创建一个文本文件inti_prime.txt 执行命令:python Prime.py init_p ...

  8. 2014山东省“浪潮杯”第五届ACM省赛总结

    一次比赛做一次总结,弱菜又来总结了…… 我这种大四的又死皮赖来混省赛了,貌似就我和山大威海的某哥们(不详其大名)了吧.颁奖前和他聊天,得知他去百度了,真是不错,ORZ之. 比赛流水账: 题目目前不知道 ...

  9. SPOJ:NO GCD (求集合&秒啊)

    You are given N(1<=N<=100000) integers. Each integer is square free(meaning it has no divisor ...

  10. Android 业务组件化开发实践

    组件化并不是新话题,其实很早很早以前我们开始为项目解耦的时候就讨论过的.但那时候我们说的是功能组件化.比如很多公司都常见的,网络请求模块.登录注册模块单独拿出来,交给一个团队开发,而在用的时候只需要接 ...