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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1801 黑匣子_NOI导刊2010提高(06)

發布時間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1801 黑匣子_NOI导刊2010提高(06) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

P1801 黑匣子_NOI導刊2010提高(06)

題目描述
Black Box是一種原始的數據庫。它可以儲存一個整數數組,還有一個特別的變量i。最開始的時候Black Box是空的.而i等于0。這個Black Box要處理一串命令。

命令只有兩種:

ADD(x):把x元素放進BlackBox;

GET:i加1,然后輸出Blackhox中第i小的數。

記住:第i小的數,就是Black Box里的數的按從小到大的順序排序后的第i個元素。例如:

我們來演示一下一個有11個命令的命令串。(如下圖所示)

現在要求找出對于給定的命令串的最好的處理方法。ADD和GET命令分別最多200000個。現在用兩個整數數組來表示命令串:

1.A(1),A(2),…A(M):一串將要被放進Black Box的元素。每個數都是絕對值不超過2000000000的整數,M$200000。例如上面的例子就是A=(3,1,一4,2,8,-1000,2)。

2.u(1),u(2),…u(N):表示第u(j)個元素被放進了Black Box里后就出現一個GET命令。例如上面的例子中u=(l,2,6,6)。輸入數據不用判錯。

輸入輸出格式
輸入格式:
第一行,兩個整數,M,N。

第二行,M個整數,表示A(l)

……A(M)。

第三行,N個整數,表示u(l)

…u(N)。

輸出格式:
輸出Black Box根據命令串所得出的輸出串,一個數字一行。


裸的平衡樹treap,當復習了

靠最大值爆我取的INF了調了半天QAQ

Treap還是要熟練掌握得(認真臉)

#include<iostream> #include<cstdio> #include<queue> #include<cstring> #include<algorithm> #include<climits> typedef long long LL; using namespace std; LL RD(){LL out = 0,flag = 1;char c = getchar();while(c < '0' || c >'9'){if(c == '-')flag = -1;c = getchar();}while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();}return flag * out;} const LL maxn = 200019,INF = 0xfffffffffffffff; LL ch[maxn][2]; LL val[maxn],dat[maxn]; LL size[maxn],cnt[maxn]; LL tot,root; LL New(LL v){val[++tot] = v,dat[tot] = rand();size[tot] = cnt[tot] = 1;return tot;} void pushup(LL id){size[id] = size[ch[id][0]] + size[ch[id][1]] + cnt[id];} void build(){root = New(-INF),ch[root][1] = New(INF);pushup(root);} void Rotate(LL &id,LL d){LL temp = ch[id][d ^ 1];ch[id][d ^ 1] = ch[temp][d];ch[temp][d] = id;id = temp;pushup(ch[id][d]),pushup(id);} void insert(LL &id,LL v){if(!id){id = New(v);return ;}if(val[id] == v){cnt[id]++;pushup(id);return ;}LL d = v < val[id] ? 0 : 1;insert(ch[id][d],v);if(dat[id] < dat[ch[id][d]])Rotate(id,d ^ 1);pushup(id);} LL get_val(LL id,LL rank){if(!id)return INF;if(size[ch[id][0]] >= rank)return get_val(ch[id][0],rank);else if(size[ch[id][0]] + cnt[id] >= rank)return val[id];else return get_val(ch[id][1],rank - size[ch[id][0]] - cnt[id]);} LL num,na; LL ori[maxn],ask[maxn],p = 1; int main(){num = RD();na = RD();for(LL i = 1;i <= num;i++)ori[i] = RD();for(LL i = 1;i <= na;i++)ask[RD()]++;build();for(LL i = 1;i <= num;i++){insert(root,ori[i]);while(ask[i]--)printf("%lld\n",get_val(root,++p));}return 0;}

轉載于:https://www.cnblogs.com/Tony-Double-Sky/p/9291400.html

總結

以上是生活随笔為你收集整理的P1801 黑匣子_NOI导刊2010提高(06)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩国产麻豆 | 欧美日韩二区三区 | xxx国产 | av中文在线 | 国产乱码精品一区二三赶尸艳谈 | 亚洲GV成人无码久久精品 | 亚洲日本一区二区 | 天天插天天射天天干 | 99色国产 | 国产婷婷色一区二区在线观看 | 中国黄色一级片 | 日精品| 99这里都是精品 | 人妖一区二区三区 | 久久久久国产精品无码免费看 | 国产视频第三页 | 日韩一区二区三区在线视频 | 无码人妻aⅴ一区二区三区玉蒲团 | 小视频在线观看 | 涩涩涩在线视频 | 精品人伦一区二区三区蜜桃免费 | 亚洲va欧美va国产综合久久 | 午夜影视在线观看 | 亚洲综合一区二区 | 久久不射电影网 | 日操夜操天天操 | 国产一区二区精品在线观看 | 窝窝午夜理论片影院 | 天堂综合网 | 欧美11p| 日韩免费专区 | 男人天堂中文字幕 | 91插插视频 | 亚洲一二三精品 | 瑟瑟视频免费观看 | 欧美猛交免费 | 啪视频免费 | 国产无码日韩精品 | 国产鲁鲁视频在线观看免费 | 国产欧美精品一区 | 午夜天堂精品久久久久 | 手机看片日韩国产 | 激情综合网站 | 亚洲国产黄 | 久久精品视 | 91在线精品播放 | 亚洲影院av | 无码精品人妻一区二区三区影院 | 六月婷婷七月丁香 | 激情五月在线观看 | av电影在线播放 | 日本一区视频在线观看 | 国产一区二区三区四区五区 | 午夜成人影视 | 欧美三区| sm捆绑调教视频 | 国产成人三级在线观看视频 | 国产成人无码AA精品区 | 久久久久少妇 | 欧美怡红院视频 | 亚洲国产欧美在线观看 | 少妇把腿扒开让我舔18 | 香蕉视频在线网址 | 久久亚洲中文字幕无码 | 色妹av | 免费人妻精品一区二区三区 | 邻家有女4完整版电影观看 欧美偷拍另类 | 白白色在线观看 | 精品动漫3d一区二区三区免费版 | 中文在线永久免费观看 | 爱综合网| 日本黄图 | 欧美日韩视频无码一区二区三 | 视色影视 | 国产ts在线视频 | 亚洲插插插 | 99精品一区二区三区无码吞精 | 国产免费自拍视频 | 人妻丰满熟妇无码区免费 | 成人国产片女人爽到高潮 | 欧美巨鞭大战丰满少妇 | 黄色一级生活片 | 久久久久久久久久久久97 | 91在线观看视频 | 国产人妻精品一区二区三 | 久久99热这里只频精品6学生 | 2020亚洲天堂| 极品美女高潮出白浆 | 黄页免费视频 | 国产一卡二卡在线 | 国产三级一区二区 | 欧美成人精品一区二区男人小说 | 男人和女人在床的app | 久久综合久久88 | 国产影视一区二区三区 | 黄色动漫免费在线观看 | 亚洲一区二区三区精品视频 | 亚洲精品无码永久在线观看 | 国产在线一区二区三区 |