BZOJ 1878 HH的项链
来源:互联网 发布:js屏蔽鼠标右键 编辑:程序博客网 时间:2024/04/29 15:19
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>#include<iostream>#include<vector>using namespace std;#define MAXM 200001#define MAXN 1000001struct ASK{int l,r,num;};ASK b[MAXM];int N,M,a[MAXN],ans[MAXM],S[MAXN],hash[MAXN],last[MAXN];bool cmp(ASK X,ASK Y){return X.r<Y.r;}int lowbit(int x){return x&(-x);}void add(int x,int v){ while(x<=N+1) { S[x]+=v; x+=lowbit(x); }}int getsum(int x){ int tmp=0; while(x>0) { tmp+=S[x]; x-=lowbit(x); } return tmp;}int main(){ //freopen("sequence.in","r",stdin); //freopen("sequence.out","w",stdout); scanf("%d",&N); for(int i=1;i<=N;i++) { int A; scanf("%d",&A); hash[i]=last[A]+1; last[A]=i; } scanf("%d",&M); for(int i=1;i<=M;i++) {scanf("%d%d",&b[i].l,&b[i].r); b[i].num=i; } sort(b+1,b+1+M,cmp); int now=1; for(int i=1;i<=M;i++) { while(now<=b[i].r) { now++; add(hash[now-1],1); add(now,-1); } ans[b[i].num]=getsum(b[i].l); } for(int i=1;i<=M;i++)printf("%d\n",ans[i]); //system("pause"); return 0;}
0 0
- BZOJ 1878 HH的项链
- bzoj-1878 HH的项链
- 【BZOJ】1878 HH的项链
- BZOJ 1878, HH的项链
- bzoj 1878 [SDOI2009]HH的项链
- BZOJ-1878-HH的项链-SDOI2009
- BZOJ 1878: [SDOI2009]HH的项链
- BZOJ 1878 [SDOI2009]HH的项链
- BZOJ 1878 [SDOI2009]HH的项链
- 【BZOJ 1878】[SDOI2009]HH的项链 莫队
- 【bzoj 1878】[SDOI2009]HH的项链
- BZOJ 1878 [SDOI2009]HH的项链 莫队
- bzoj 1878: [SDOI2009]HH的项链
- BZOJ 1878: [SDOI2009]HH的项链
- BZOJ 1878 【SDOI2009】HH的项链(离线+树状数组)
- bzoj 1878 [SDOI2009]HH的项链 树状数组 离线查询
- BZOJ 1878 [SDOI2009]HH的项链 题解与分析
- BZOJ 1878 [SDOI2009]HH的项链 离线+树状数组
- Android getDimensionPixelSize, 代码中设置字体大小,读xml配置。
- kaldi中深度学习的主要实现---------Karel's DNN training implementation
- vs 2008 判断某年某月有多少天
- 华为2014暑期实习生招聘机试第二题
- ZOJ-2347
- BZOJ 1878 HH的项链
- CC_3_栈与队列
- codeforces 402 B Online Meeting
- Kinect SDK(1):读取彩色、深度、骨骼信息并用OpenCV显示
- 前端web 技术盘点
- Android涉及到的设计模式
- POJ 3006 - Dirichlet's Theorem on Arithmetic Progressions
- webdriver基础python版(一)简单的浏览器操作
- csdn博客群发工具诚招代理,QQ1922028080谂