亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【NOI導刊】黑匣子

2019-11-11 03:53:30
字體:
來源:轉載
供稿:網友
題目描述 Description

我們使用黑匣子的一個簡單模型。它能存放一個整數序列和一個特別的變量i。在初始時刻,黑匣子為空且i等于0。這個黑匣子能執行一系列的命令。有兩類命令:

ADD(x):把元素x放入黑匣子;GET:把i加1的同時,輸出黑匣子內所有整數中第i小的數。牢記第i小的數是當黑匣子中的元素已非降序排序后位于第i位的元素。

下面的表6_4是一個11個命令的例子:

表6_4

編號

命令

i

黑匣子內容

輸出

1

ADD(3)

0

3

 

2

GET

1

3

3

3

ADD(1)

1

1,3

 

4

GET

2

1,3

3

5

ADD(-4)

2

-4,1,3

 

6

ADD(2)

2

-4,1,2,3

 

7

ADD(8)

2

-4,1,2,3,8

 

8

ADD(-1000)

2

-1000,-4,1,2,3,8

 

9

GET

3

-1000,-4,1,2,3,8

1

10

GET

4

-1000,-4,1,2,3,8

2

11

ADD(2)

4

-1000,-4,1,2,2,3,8

 

現需要一個有效的算法處理給定的一系列命令。ADD和GET命令的總數至多個有30000個。定義ADD命令的個數為M個,GET命令的個數為N個。我們用下面得兩個整數序列描述命令序列:

1.A(1),A(2),……,A(M):加入黑匣子的元素序列。所有的數均為絕對值不超過2000000的整數。例如在上例中A=(3,1,-4,2,8,-1000,2)。

2.u(1),u(2),……,u(N):u(i)表示第i個GET命令在第u(i)個ADD命令之后,例如在上例中,u=(1,2,6,6)。

你可以假定自然數序列u(1),u(2),……,u(N)以非降序排列,N≤M,且對于每一個p(1≤p≤N)有p≤u(p)≤M。

輸入描述 Input Description

第一行存放M和N的值,第二行存放 A(1),A(2),……,A(M) ,第三行存放u(1),u(2),……,u(N)。

輸出描述 Output Description

輸出黑匣子的處理結果。

樣例輸入 Sample Input

7 4

3 1 -4 2 8 -1000 2

1 2 6 6

樣例輸出 Sample Output

3

3

1

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

聽說這題有一種很J形的做法是開一個大根堆一個小根堆互扔...?【mengbi】反正這題的話用平衡樹也能過,維護兩個操作:添加與查找第k大元素,添加的話考慮幾種情況,然后查找也是分類討論,具體實現的話可以看代碼。

#include <cstdio>#include <algorithm>#include <cstdlib>using namespace std;const int maxx = 50000 + 100;int a[maxx],b[maxx];int n,num,root,x,m,now;struct Node{	int lc,rc;	int v,fix;	int size,cnt;}T[maxx];void update(int i){	T[i].size = T[T[i].lc].size + T[T[i].rc].size +T[i].cnt;}void lturn(int &i){	int t = T[i].rc;	T[i].rc = T[t].lc;	T[t].lc = i;	T[t].size = T[i].size;	update(i);	i = t;}void rturn(int &i){	int t = T[i].lc;	T[i].lc = T[t].rc;	T[t].rc = i;	T[t].size = T[i].size;	update(i);	i = t;}void insert(int &i,int x){	if(i == 0){		num++;		i = num;		T[i].v = x;		T[i].size = T[i].cnt = 1;		T[i].fix = rand();		return;	}//當此節點為空 	T[i].size++;	if(T[i].v == x) T[i].cnt++;	if(x < T[i].v){		insert(T[i].lc,x);		if(T[T[i].lc].fix < T[i].fix) rturn(i);	}//小于往左加,并且通過旋轉維護堆性質 	if(x > T[i].v){		insert(T[i].rc,x);		if(T[T[i].rc].fix < T[i].fix) lturn(i);	}//大于往右加 }int Query_num(int i,int x){	if(i == 0) return 0;	if(x <= T[T[i].lc].size) return Query_num(T[i].lc,x);//每個數的排名:左子樹大小+1,所以如果小于等于左子樹大小,說明往左找 	if(x > T[T[i].lc].size + T[i].cnt)//如果大于左子樹大小加重復元素,往右找 		return Query_num(T[i].rc,x-T[T[i].lc].size-T[i].cnt);//注意此時還需要找的個數為x-T[T[i].lc].size-T[i].cnt。 	else return T[i].v;}int main(){	scanf("%d%d",&n,&m);	for(int i=1;i<=n;i++)		scanf("%d",&a[i]);	for(int i=1;i<=m;i++)		scanf("%d",&x),b[x]++;//記錄哪些數之后有操作 	for(int i=1;i<=n;i++){		insert(root,a[i]);		while(b[i]--){			now++;			PRintf("%d/n",Query_num(root,now));		}	}	return 0;}

QvQ........


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩亚洲在线观看| 久久在线精品视频| 国产成人精品电影久久久| 国产视频一区在线| 清纯唯美亚洲激情| 国产成人av在线| 91在线精品播放| 亚洲国产精彩中文乱码av| 亚洲最新av在线| 亚洲一二三在线| 欧美激情视频三区| 国产视频精品va久久久久久| 国产精品极品在线| 黑人巨大精品欧美一区二区一视频| 97香蕉超级碰碰久久免费软件| 欧美猛交ⅹxxx乱大交视频| 亚洲www永久成人夜色| 亚洲系列中文字幕| 亚洲另类欧美自拍| 亚州精品天堂中文字幕| 国产精品久久久久久搜索| 美女视频黄免费的亚洲男人天堂| 日韩亚洲综合在线| 国产在线播放91| 少妇激情综合网| 久久久999成人| 久久久久亚洲精品国产| 国产精品www色诱视频| 欧美亚洲伦理www| 亚洲天堂色网站| 久久九九热免费视频| 国模精品一区二区三区色天香| 中文日韩在线观看| 国产亚洲aⅴaaaaaa毛片| 538国产精品一区二区在线| 国产精品成人免费电影| 亚洲国产女人aaa毛片在线| 日韩激情av在线播放| 色噜噜狠狠色综合网图区| 日韩成人在线视频观看| 日韩在线观看免费高清完整版| 色无极影院亚洲| 国产精品亚洲激情| 欧美性videos高清精品| 日韩电影免费在线观看中文字幕| 最近2019中文免费高清视频观看www99| 国产一区二区三区视频免费| 国产一区二区三区日韩欧美| 国产精品jizz在线观看麻豆| 久久人91精品久久久久久不卡| 91国内在线视频| 日韩av影视综合网| 最近中文字幕2019免费| 91性高湖久久久久久久久_久久99| 久久精品免费播放| 日韩毛片中文字幕| 亚洲国产一区自拍| 97视频网站入口| 亚洲精品视频播放| 欧美极品少妇与黑人| 97在线观看视频| 中文字幕亚洲天堂| 伊人久久久久久久久久久| 成人黄在线观看| 亚洲天天在线日亚洲洲精| 欧美激情一区二区三区在线视频观看| 在线播放国产一区中文字幕剧情欧美| 亚洲人精品午夜在线观看| 亚洲天堂av网| 国产美女精品免费电影| www.精品av.com| 国产视频欧美视频| 日韩经典中文字幕| 亚洲精品电影在线| y97精品国产97久久久久久| 韩剧1988免费观看全集| 国产国语videosex另类| 大荫蒂欧美视频另类xxxx| 亚洲综合中文字幕68页| 亚洲欧洲在线看| 亚洲欧洲国产精品| 91大神福利视频在线| 欧美最猛性xxxx| 69影院欧美专区视频| 亚洲第一色在线| 久热国产精品视频| 久久青草精品视频免费观看| 亚洲欧美一区二区三区久久| 久久国产精品影视| 久久99久久99精品免观看粉嫩| 国内精品久久久久久中文字幕| 亚洲一区二区三区xxx视频| 国产激情久久久久| 欧美国产中文字幕| 欧美电影免费观看网站| 亚洲国产精品人久久电影| 国产精品99久久久久久久久久久久| 午夜精品在线观看| 国产精品v片在线观看不卡| 国语自产精品视频在线看| 日韩电影在线观看永久视频免费网站| 国产成人福利视频| 国产这里只有精品| 狠狠综合久久av一区二区小说| 91亚洲一区精品| 欧美性在线视频| 欧美激情一区二区三区成人| 国产精品青青在线观看爽香蕉| 精品亚洲aⅴ在线观看| 美女av一区二区| 欧美视频在线观看 亚洲欧| 欧美成人免费全部观看天天性色| 欧美午夜影院在线视频| 中文字幕在线视频日韩| 2021国产精品视频| 97在线看福利| 成人亚洲欧美一区二区三区| 欧美怡红院视频一区二区三区| 久久国产一区二区三区| 6080yy精品一区二区三区| 亚洲男女性事视频| 亚洲国产99精品国自产| 亚洲性无码av在线| 久久夜精品香蕉| 日韩欧美亚洲综合| 国产美女精彩久久| 日韩精品在线观看网站| 91精品成人久久| 国产精品日韩欧美综合| 91av视频在线观看| 欧美一级电影在线| 国产精品视频地址| 欧美电影免费观看电视剧大全| 久热国产精品视频| 尤物精品国产第一福利三区| 亚洲精品欧美日韩专区| 国产精品91免费在线| 在线观看欧美日韩| 亚洲va久久久噜噜噜| 91精品视频播放| 成人在线精品视频| 97国产精品视频| 久久69精品久久久久久国产越南| 国产成人精品久久二区二区| 91禁国产网站| 亚洲国产精品va在线| 亚洲国产高清高潮精品美女| 日韩av电影在线网| 麻豆精品精华液| 久久九九有精品国产23| 成人免费视频97| 国产精品精品视频| 伊人伊成久久人综合网小说| 97国产在线视频| 国产精品18久久久久久首页狼| 日韩成人小视频| 伊人久久久久久久久久久久久| 亚洲在线观看视频| 国产精品久久久久久久久久| 亚洲人a成www在线影院| 日韩成人在线视频网站| 91精品国产高清久久久久久久久| 亚洲欧美日韩视频一区| 97视频免费在线看|