[SDOI2009]HH的项链 BZOJ1878
分析:
听说是莫队裸题,很显然,我并不喜欢莫队。
我们可以考虑将询问离线,以右端点排序,之后从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相关推荐
- BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
1878: [SDOI2009]HH的项链 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 4857 Solved: 2401 [Submit][Sta ...
- bzoj1878: [SDOI2009]HH的项链
树状数组的一类题目 #include<cstdio> #include<cstring> #include<iostream> #include<algori ...
- bzoj千题计划181:bzoj1878: [SDOI2009]HH的项链
http://www.lydsy.com/JudgeOnline/problem.php?id=1878 之前用莫队做的,现在用树状数组 把每种数的第一个出现位置在树状数组中+1 nxt[i] 记录i ...
- P1972 [SDOI2009]HH的项链
P1972 [SDOI2009]HH的项链 题意: 给你一个序列,问这个序列中的种类数 n,m,ai<=1e6 题解: 三个方法:莫队(会超时),树状数组,主席树(会超时) 莫队就是裸题,不讲了 ...
- BZOJ 1878: [SDOI2009]HH的项链
1878: [SDOI2009]HH的项链 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 3548 Solved: 1757 [Submit][Sta ...
- BZOJ 1878: [SDOI2009]HH的项链( BIT )
离线处理 , 记下询问的左右端点并排序 , 然后可以利用树状数组 , 保证查询区间时每种颜色只计算一次 ------------------------------------------------ ...
- bzoj 1878: [SDOI2009]HH的项链(主席树)
1878: [SDOI2009]HH的项链 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 5317 Solved: 2624 [Submit][Sta ...
- luogu P1972 [SDOI2009] HH的项链【莫队——奇偶优化详解】
题面 分析 莫队,往死里卡常,开O2加奇偶性优化可卡过 我才不会告诉你我这道题提交了37次呢 code // luogu-judger-enable-o2 #include<bits/stdc+ ...
- 【树状数组】Bzoj1878[SDOI2009] HH的项链
Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变 ...
- BZOJ1878(SDOI2009)[HH的项链]题解--莫队
[链接] bzoj1878 [题目大意] 给你一个序列,让你求一段区间中不同数的个数. [解题报告] 此题可以用莫队算法解,n比较小.(其实也可以用数状数组解,但本蒟蒻很懒就没写了..) #inclu ...
最新文章
- ASML 1nm光刻机研究进展:摩尔定律尚未结束
- java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java
- 二叉搜索树简介和部分题目
- Android View滚动、拉伸到顶/底部弹性回弹复位
- Linux平台-小型企业DHCP服务器的搭建
- Java经典设计模式(3):十一种行为型模式(附实例和详解)
- MPQ Storm库 源码分析 一
- 史上最全面“完美商业计划书”攻略和技巧(附PPT模板)
- TinyXML2使用教程
- Python3实现向指定邮箱发送邮件(支持附件文件、图片等)
- 2016-09-01[关于Paint笔触的了解]
- Java开发校招面试考点汇总
- PDF文件怎么转PPT格式?不会的小伙伴快看过来
- 信号处理:<三> DFT和FFT
- Java代码加密,Java加密方式,Java加密使用说明
- Oracle常用函数大全
- Verilog中assign的使用
- 【SAP S/4 1511之变】:主数据之变
- 神州数码DCN交换机 SAVI相关功能配置
- JS复制图片到剪切板
热门文章
- mysql的索引(二)
- ReentrantLock源码解读
- Ant十五大最佳实践
- Gitea Extension for Visual Studio V1.0.62 发布
- CentOS Linux解决Device eth0 does not seem to be pres
- Guava库学习:学习Guava Cache(二)Guava caches(2)
- java 算法基础之三合并排序法
- 《IT项目管理》读书笔记(5) —— 项目时间管理
- 程序员职业发展三阶段
- Spring.net 控制反转(IoC)容器_(收集)