bzoj1878 [SDOI2009]HH的项链【莫队】
传送门: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的项链【莫队】的更多相关文章
- BZOJ1878 [SDOI2009] HH的项链 [莫队,卡常]
BZOJ传送门,洛谷传送门 HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义. ...
- [BZOJ1878][SDOI2009]HH的项链 莫队
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1878 不带修改的莫队,用一个桶记录一下当前区间中每种颜色的数量就可以做到$O(1)$更新了 ...
- BZOJ1878[SDOI2009]HH的项链+莫队算法模板
题意:多次询问,求在一个区间中,有多少种珠子: 思路:莫队算法模板题目: 参考:https://www.cnblogs.com/RabbitHu/p/MoDuiTutorial.html #inclu ...
- [bzoj1878][SDOI2009][HH的项链] (莫队算法)
Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变 ...
- Bzoj 1878: [SDOI2009]HH的项链 莫队
1878: [SDOI2009]HH的项链 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 2717 Solved: 1363[Submit][Statu ...
- [SDOI2009] HH的项链 | 莫队模板
题目链接:戳我 题意:求区间中不同颜色的种类数 因为是要过知识点,所以又把这题拿出来做了一遍......这里就写两种方法吧 主席树做法 设pre[i]为第i个点上的颜色在前面序列中出现的最晚的一次的位 ...
- P1972 [SDOI2009]HH的项链 莫队or树状数组
用什么树状数组莫队多帅 思路:树状数组\(or\)莫队(其实还是推荐树状数组\(QwQ\)) 提交:我告诉你我卡了一会儿常 卡不满原因:没有用奇偶性排序 题解: 莫队: 就是裸的莫队,把询问排序\(e ...
- BZOJ1878 SDOI2009 HH的项链 【莫队】
BZOJ1878 SDOI2009 HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的 ...
- bzoj千题计划181:bzoj1878: [SDOI2009]HH的项链
http://www.lydsy.com/JudgeOnline/problem.php?id=1878 之前用莫队做的,现在用树状数组 把每种数的第一个出现位置在树状数组中+1 nxt[i] 记录i ...
- BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
1878: [SDOI2009]HH的项链 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 Description: HH有一串由 ...
随机推荐
- DataFactory 5.6注册码
一.DataFactory 5.6注册码 数据工厂5.6注册码如下,希望能帮助需求之人 AuthKey: 0-87093-23830-05141-17507 SiteMsg: FREELAND EVO ...
- LeetCode题解(19)--Remove Nth Node From End of List
https://leetcode.com/problems/remove-nth-node-from-end-of-list/ 原题: Given a linked list, remove the ...
- Mac中配置eclipse的php开发环境
1.mac中自带php和apache,不过版本不是最新的. 2.打开apache配置文件中php相关设置,并设置php的工程目录为你想要的目录 3.复制php.ini.default为php.ini, ...
- var和let的区别(详解)
1. 作用域 通过var定义的变量,作用域是整个封闭函数,是全域的 . 通过let定义的变量,作用域是在块级或是子块中. function varTest() { var x = 1; if (tru ...
- Hihocoder #1077 : RMQ问题再临-线段树(线段树:结构体建树+更新叶子往上+查询+巧妙使用father[]+线段树数组要开大4倍 *【模板】)
#1077 : RMQ问题再临-线段树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到:小Hi给小Ho出了这样一道问题:假设整个货架上从左到右摆放了N种商品,并 ...
- DEDECMS织梦自定义表单中必填项、电话邮箱过滤以及验证码规则
织梦自定义表单必填项规则--->(wwwshu-acca.com网站表单) 1. 在plus/diy.php 的第 40行下加如下代码: 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- eclipse创建maven项目出现以下报错: org.apache.maven.archiver.MavenArchiver.getManifest (org.apache.maven.project.MavenProject,org.apache.mav en.archiver.MavenArchiveConfiguration)
解决方法: 更新eclipse中的maven插件 Help -> Install New Software -> add -> http://repo1.maven.org/ma ...
- maven配置本地仓库和国内镜像仓库,解决国内访问国外中央仓库速度过慢问题
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 1.配置本地仓库 打开conf文件夹下面的setting.xml文件 红色方框为配置本地仓 ...
- Web前端性能优化经验分享
最近一直有给新同学做前端方面的培训,也有去参与公司前端的招聘,所以把自己资料库里面很多高效且有用的知识做了些 规整分类,然后再分享一篇关于前端优化方面的总结.而且春节一过就又是招聘的高峰期了,在校的. ...
- CentOS/Ubuntu安装GLIBCXX3.4.21
经过测试“GLIBCXX3.4.21 not find”这篇博文解决了我的问题. 以下是安装步骤: 一.首先查看当前gcc版本 strings /usr/lib/x86_64_linux-gun/ ...