日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bzoj1878: [SDOI2009]HH的项链

發(fā)布時間:2024/6/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bzoj1878: [SDOI2009]HH的项链 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

樹狀數(shù)組的一類題目

#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) #define clr(x,c) memset(x,c,sizeof(x)) int read(){int x=0;char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar();return x; } const int nmax=50005; const int maxn=1000005; int sum[nmax],pos[maxn],next[nmax],a[nmax],n; struct node{int s,t,id,ans; }; node ns[nmax<<2]; bool cmp(node a,node b){return a.s<b.s||a.s==b.s&&a.t<b.t; } bool comp(node a,node b){return a.id<b.id; } void update(int x){for(int i=x;i<=n;i+=i&-i) sum[i]+=1; } int query(int x){int ans=0;for(int i=x;i;i-=i&-i) ans+=sum[i];return ans; } void maxs(int &a,int b){if(a<b) a=b; } int main(){n=read();int mx=-1;rep(i,1,n) a[i]=read(),maxs(mx,a[i]);dwn(i,n,1) next[i]=pos[a[i]],pos[a[i]]=i;rep(i,0,mx) if(pos[i]) update(pos[i]);int m=read();rep(i,1,m) ns[i].s=read(),ns[i].t=read(),ns[i].id=i;sort(ns+1,ns+m+1,cmp);int cur=1;rep(i,1,m){rep(j,cur,ns[i].s-1) if(next[j]) update(next[j]);cur=ns[i].s;ns[ns[i].id].ans=query(ns[i].t)-query(ns[i].s-1);}rep(i,1,m) printf("%d\n",ns[i].ans);return 0; }

  

1878: [SDOI2009]HH的項鏈

Time Limit:?4 Sec??Memory Limit:?64 MB
Submit:?3200??Solved:?1612
[Submit][Status][Discuss]

Description

HH有一串由各種漂亮的貝殼組成的項鏈。HH相信不同的貝殼會帶來好運,所以每次散步 完后,他都會隨意取出一段貝殼,思考它們所表達(dá)的含義。HH不斷地收集新的貝殼,因此, 他的項鏈變得越來越長。有一天,他突然提出了一個問題:某一段貝殼中,包含了多少種不同 的貝殼?這個問題很難回答。。。因為項鏈實在是太長了。于是,他只好求助睿智的你,來解 決這個問題。

Input

第一行:一個整數(shù)N,表示項鏈的長度。 第二行:N個整數(shù),表示依次表示項鏈中貝殼的編號(編號為0到1000000之間的整數(shù))。 第三行:一個整數(shù)M,表示HH詢問的個數(shù)。 接下來M行:每行兩個整數(shù),L和R(1 ≤ L ≤ R ≤ N),表示詢問的區(qū)間。

Output

M行,每行一個整數(shù),依次表示詢問對應(yīng)的答案。

Sample Input

6
1 2 3 4 3 5
3
1 2
3 5
2 6

Sample Output

2
2
4

HINT


對于20%的數(shù)據(jù),N ≤ 100,M ≤ 1000;
對于40%的數(shù)據(jù),N ≤ 3000,M ≤ 200000;
對于100%的數(shù)據(jù),N ≤ 50000,M ≤ 200000。

Source

Day2

[Submit][Status][Discuss]

轉(zhuǎn)載于:https://www.cnblogs.com/fighting-to-the-end/p/5859389.html

總結(jié)

以上是生活随笔為你收集整理的bzoj1878: [SDOI2009]HH的项链的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。