[bzoj1878][SDOI2009]HH的项链_莫队
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的项链_莫队的更多相关文章
- BZOJ_1878_[SDOI2009]HH的项链_莫队
BZOJ_1878_[SDOI2009]HH的项链_莫队 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考 ...
- BZOJ1878 SDOI2009 HH的项链 【莫队】
BZOJ1878 SDOI2009 HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的 ...
- [luogu1972][bzoj1878][SDOI2009]HH的项链【莫队+玄学卡常】
题目大意 静态区间查询不同数的个数. 分析 好了,成功被这道题目拉低了AC率... 打了莫队T飞掉了,真的是飞掉了QwQ. 蒟蒻想不出主席树的做法,就换成了莫队... 很多人都不知道莫队是什么... ...
- bzoj1878 [SDOI2009]HH的项链【莫队】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1878 以每个询问左端点所属的块的编号为第一关键字,右端点本身为第二关键字,排序,然后保利扫描 ...
- 洛谷 P1972 [SDOI2009]HH的项链【莫队算法学习】
P1972 [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含 ...
- 【洛谷】1972:[SDOI2009]HH的项链【莫队+树状数组】
P1972 [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含 ...
- BZOJ 1878 [SDOI2009]HH的项链 【莫队】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 1878: [SDOI2009]HH的项链 Time Limit: 4 Sec M ...
- [bzoj1878][SDOI2009]HH的项链_树状数组
HH的项链 bzoj-1878 SDOI-2009 题目大意:给定一个n个数的序列,m次查询.查询区间数的种类个数. 注释:$1\le n \le 5\cdot 10^4$,$1\le m\le 2\ ...
- [SDOI2009]HH的项链(莫队)
嘟嘟嘟 这题原本莫队能过,自从某谷加强数据后好像就只能80了. 但这并不重要. (其实写这篇博客只是想记录一下莫队板子) 莫队,总而言之,离线,排序,暴力. #include<cstdio> ...
随机推荐
- Nginx开启http2访问和gzip网页压缩功能
准备工作 如果Nginx要开启http2需要满足以下2个条件: nginx >=1.9.5 openSSL >= 1.0.2 所以这里我们首先要检查Nginx的版本如果没有安装要先安装 ...
- PowerDesigner 的使用教程
PowerDesigner 的使用这两篇博客挺好,我也是跟着学习,就不再写了: 初步学习: http://www.cnblogs.com/huangcong/archive/2010/06/14/17 ...
- Android 性能优化(10)网络优化( 6)Optimizing General Network Use
Optimizing General Network Use This lesson teaches you to Compress Data Cache Files Locally Optimize ...
- 利用Openfiler配置基于文件系统的网络存储
一.Openfiler简介 Openfiler是一个操作系统,其提供基于文件的网络附加存储和基于块的存储区域网络功能. Openfiler支持的网络协议包括:NFS,SMB/CIFS,HTTP/Web ...
- .Net MVC之间的关系以及如何运用
.Net MVC组成部分:视图(views)模型(model)控制器(controller)以及路由(RouteConfig),视图跟模型的数据不进行直接的交互,他们是通过控制器进行视图模型之间的数据 ...
- 第一次创建svn的项目的使用方法
1.第一步.在服务器上创建svn项目,将开发人人员你的账号密码添加上去. 2.第二步.开始在本地创建一个文件夹,点文件夹,右键->tortoisSVN->repo-brower 填写svn ...
- Java 基础入门随笔(5) JavaSE版——函数重载
1.函数 函数就是定义在类中具有特定功能的一段独立小程序,也称为方法. 定义函数的格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...) { ...
- HDU_1506_Largest Rectangle in a Histogram_dp
Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- 使用CAShapeLayer的path属性与UIBezierPath画出扫描框
1.CAShapeLayer CAShapeLayer具有path属性,(是CGPath对象),可以使用这个属性与UIBezierPath画出想要的图形.该子类根据其fill color和stroke ...
- post请求重定向到get请求问题
springMVC默认重定向是get请求,我在方法注解中没有指定method是post还是get请求,这样就可以接收到post重定向来的请求,也可以接收到页面传来的get请求,如果要传参,可以使用mo ...