洛谷题目链接

题意:

给定一个长5w静态的序列,询问20w次,每次询问查找一个区间内的元素种类数


染色问题神烦啊,最近刚会做,感觉都可以用统一的方法

首先要算出与一个元素相同的最邻近的上一个元素的位置,这样的话只要求出区间内上一位置小于下限的就是元素种类数

——非常有道理的样子,但是第一次见肯定想不到

于是实现了          颜色种类问题->范围内数的个数          的问题转化

然后就简单了,交给权值主席树就好了

算是第二道主席树练习题吧

深井冰错误:构造权值线段树的时候忘记把0构造进去,MDZZ

  1. #include <cstdio>
  2. #define mid (l+r)/2
  3. struct node{int size,ls,rs;} t[];
  4. int cnt=,n,m,x,y,a[],p[],c[],root[];
  5. int add(int now,int l,int r,int x)
  6. {
  7. int po=++cnt;
  8. t[po]=(node){t[now].size+,(l<r && x<=mid)?add(t[now].ls,l,mid,x):t[now].ls,(l<r && x>mid)?add(t[now].rs,mid+,r,x):t[now].rs};
  9. return po;
  10. }
  11. int que(int x,int y,int l,int r,int z)
  12. {
  13. if(l==r) return t[y].size-t[x].size;
  14. return (z<=mid)?que(t[x].ls,t[y].ls,l,mid,z):t[t[y].ls].size-t[t[x].ls].size+que(t[x].rs,t[y].rs,mid+,r,z);
  15. }
  16. int main()
  17. {
  18. scanf("%d",&n);
  19. for(int i=;i<=n;i++)
  20. scanf("%d",&a[i]),p[i]=c[a[i]],c[a[i]]=i,root[i]=add(root[i-],,n,p[i]);
  21. scanf("%d",&m);
  22. for(int i=;i<=m;i++)
  23. scanf("%d%d",&x,&y),printf("%d\n",que(root[x-],root[y],,n,x-));
  24. return ;
  25. }

老板娘你还我代码风格!!!

【SDOI2009】HH的项链的更多相关文章

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

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

  2. 【BZOJ1878】[SDOI2009]HH的项链 离线BIT

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

  3. BZOJ 1878: [SDOI2009]HH的项链 离线树状数组

    1878: [SDOI2009]HH的项链 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

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

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

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

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

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

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

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

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

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

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

  9. 洛谷P1972 [SDOI2009]HH的项链 题解

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

  10. 洛谷 P1972 [SDOI2009]HH的项链 解题报告

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

随机推荐

  1. Tomcat端口被占用错误

    所报错误: 严重: Error initializing endpointjava.lang.Exception: Socket bind failed: [730013] ????????????? ...

  2. [Python] Python学习笔记之常用模块总结[持续更新...]

    作为一种极其简单的编程语言,Python目前成为了最炙手可热的几种语言之一.它不仅简单易学,而且它还为用户提供了各种各样的模块,功能强大,无所不能.有利必有弊,学习Python同样有困扰,其中之一就是 ...

  3. 大组合数:Lucas定理

    最近碰到一题,问你求mod (p1*p2*p3*……*pl) ,其中n和m数据范围是1~1e18 , l ≤10 , pi ≤ 1e5为不同的质数,并保证M=p1*p2*p3*……*pl ≤ 1e18 ...

  4. 【荐1】Total Commander 7.57 个人使用设置 及 常用快捷键 备忘

    Total Commander 7.57a  下载地址:http://www.baidu.com/s?wd=total commander 7.57 破解版 软件整体预览图:(注意,下面的版本我用的是 ...

  5. 关于Azure带宽的测试

    以前见客户经常会碰到一些客户问我们你们Azure的带宽是多少,每次回答这个问题我们只能含糊地告诉客户一个大概数值,这样就会留给客户一个认为我们很不专业的印象,其实站在客户的角度我们也能理解,连这样的一 ...

  6. Node.js与Express4安装与配置

    Nodejs简介 Node.js 基于 Chrome JavaScript 运行环境,用于便捷地搭建快速.可扩展的网络应用. 它使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效, 非常适合 ...

  7. 如何使用JS来检测游览器是什么类型,或android是什么版本号- 转载

    var brower = { versions:function(){ var u = window.navigator.userAgent; var num ; if(u.indexOf('Trid ...

  8. PHP获取一段时间内的每个周几, 每月几号, 遇到特殊日子就往后延

    2016年11月1日 16:18:19 星期二 主要用到的函数是 strtotime() strtotime('+1 Tuesday', $timestamp) 获取下周二, 从时间戳$timesta ...

  9. C++虚函数浅探

    C++中和虚函数(Virtual Function)密切相关的概念是"动态绑定"(Dynamic Binding),与之相对的概念是"静态绑定"(Static ...

  10. 阿里云部署Java web项目初体验(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...