分析:

听说是莫队裸题,很显然,我并不喜欢莫队。

我们可以考虑将询问离线,以右端点排序,之后从1枚举到n,依次树状数组中修改i和last[i],之后当i==询问的右节点时,find一下答案就可以了。

附上代码:

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
using namespace std;
#define N 50005
#define M 1000005
int n,m,a[N],last[M];
struct node
{int l,r,ans,idx;
}q[N<<2];
bool cmp(const node &c,const node &b){return c.r<b.r;}
bool cmp1(const node &a,const node &b){return a.idx<b.idx;}
int sum[N];
void fix(int x,int c){for(int i=x;i<=n;i+=i&-i)sum[i]+=c;}
int find(int x)
{int ret=0;for(int i=x;i;i-=i&-i)ret+=sum[i];return ret;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);scanf("%d",&m);for(int i=1;i<=m;i++)scanf("%d%d",&q[i].l,&q[i].r),q[i].idx=i;sort(q+1,q+m+1,cmp);int cnt=1;for(int i=1;i<=n;i++){if(last[a[i]])fix(last[a[i]],-1);fix(i,1);last[a[i]]=i;while(q[cnt].r==i)q[cnt].ans=find(i)-find(q[cnt].l-1),cnt++;}sort(q+1,q+m+1,cmp1);for(int i=1;i<=m;i++){printf("%d\n",q[i].ans);}return 0;
}

  

转载于:https://www.cnblogs.com/Winniechen/p/9107756.html

[SDOI2009]HH的项链 BZOJ1878相关推荐

  1. BZOJ-1878: [SDOI2009]HH的项链(莫队算法)

    1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 4857  Solved: 2401 [Submit][Sta ...

  2. bzoj1878: [SDOI2009]HH的项链

    树状数组的一类题目 #include<cstdio> #include<cstring> #include<iostream> #include<algori ...

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

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

  4. P1972 [SDOI2009]HH的项链

    P1972 [SDOI2009]HH的项链 题意: 给你一个序列,问这个序列中的种类数 n,m,ai<=1e6 题解: 三个方法:莫队(会超时),树状数组,主席树(会超时) 莫队就是裸题,不讲了 ...

  5. BZOJ 1878: [SDOI2009]HH的项链

    1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 3548  Solved: 1757 [Submit][Sta ...

  6. BZOJ 1878: [SDOI2009]HH的项链( BIT )

    离线处理 , 记下询问的左右端点并排序 , 然后可以利用树状数组 , 保证查询区间时每种颜色只计算一次 ------------------------------------------------ ...

  7. bzoj 1878: [SDOI2009]HH的项链(主席树)

    1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 5317  Solved: 2624 [Submit][Sta ...

  8. luogu P1972 [SDOI2009] HH的项链【莫队——奇偶优化详解】

    题面 分析 莫队,往死里卡常,开O2加奇偶性优化可卡过 我才不会告诉你我这道题提交了37次呢 code // luogu-judger-enable-o2 #include<bits/stdc+ ...

  9. 【树状数组】Bzoj1878[SDOI2009] HH的项链

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

  10. BZOJ1878(SDOI2009)[HH的项链]题解--莫队

    [链接] bzoj1878 [题目大意] 给你一个序列,让你求一段区间中不同数的个数. [解题报告] 此题可以用莫队算法解,n比较小.(其实也可以用数状数组解,但本蒟蒻很懒就没写了..) #inclu ...

最新文章

  1. ASML 1nm光刻机研究进展:摩尔定律尚未结束
  2. java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java
  3. 二叉搜索树简介和部分题目
  4. Android View滚动、拉伸到顶/底部弹性回弹复位
  5. Linux平台-小型企业DHCP服务器的搭建
  6. Java经典设计模式(3):十一种行为型模式(附实例和详解)
  7. MPQ Storm库 源码分析 一
  8. 史上最全面“完美商业计划书”攻略和技巧(附PPT模板)
  9. TinyXML2使用教程
  10. Python3实现向指定邮箱发送邮件(支持附件文件、图片等)
  11. 2016-09-01[关于Paint笔触的了解]
  12. Java开发校招面试考点汇总
  13. PDF文件怎么转PPT格式?不会的小伙伴快看过来
  14. 信号处理:<三> DFT和FFT
  15. Java代码加密,Java加密方式,Java加密使用说明
  16. Oracle常用函数大全
  17. Verilog中assign的使用
  18. 【SAP S/4 1511之变】:主数据之变
  19. 神州数码DCN交换机 SAVI相关功能配置
  20. JS复制图片到剪切板

热门文章

  1. mysql的索引(二)
  2. ReentrantLock源码解读
  3. Ant十五大最佳实践
  4. Gitea Extension for Visual Studio V1.0.62 发布
  5. CentOS Linux解决Device eth0 does not seem to be pres
  6. Guava库学习:学习Guava Cache(二)Guava caches(2)
  7. java 算法基础之三合并排序法
  8. 《IT项目管理》读书笔记(5) —— 项目时间管理
  9. 程序员职业发展三阶段
  10. Spring.net 控制反转(IoC)容器_(收集)