日韩性视频-久久久蜜桃-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)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 性一交一乱一透一a级 | 日韩不卡的av | av官网在线 | 免费观看日本 | 国产伦精品一区二区三区四区视频 | 日本三级韩国三级美三级91 | 91视频在线网站 | 国产午夜无码视频在线观看 | 久久99精品国产.久久久久久 | 天堂在线视频免费观看 | 欧美日韩小视频 | 久久久999视频 | 欧美日韩国产一级 | 日韩精品中文字幕在线播放 | www.四虎影视 | 久久视频在线观看 | 国产精品嫩 | 福利视频免费观看 | 91久久国产综合久久91精品网站 | 99热最新网址 | 欧美七区| 国产成人在线视频网站 | 黄色短视频在线播放 | 久久99九九 | 少妇人妻偷人精品视频蜜桃 | 亚洲激情专区 | 一个人看的视频www 色就是色网站 | 91操人视频 | 澳门黄色| 蝌蚪网在线视频 | 国产玖玖视频 | 精品国产av无码一区二区三区 | 色婷婷av一区二区三区大白胸 | 日韩淫片 | 久久久久成人精品免费播放动漫 | 狠狠干综合网 | 狠狠撸视频 | 轮番上阵免费观看在线电影 | 国产精品一级二级 | www色网| 香蕉久久国产 | 操操操网 | 老司机午夜福利视频 | 丁香婷婷深情五月亚洲 | 色天天干 | 欧美一区二区三区观看 | 欧美国产日韩在线视频 | 好吊色视频一区二区三区 | 国产在线成人精品午夜 | 欧美日韩精品一二三区 | 天堂在线精品 | 国产主播啪啪 | 人妻精品无码一区二区三区 | 一本色道久久加勒比精品 | 久久国产成人精品 | 美女av在线播放 | 国产特黄 | 免费看的黄色小视频 | 欧美日韩黑人 | 99在线观看 | 拔萝卜91| 性欧美另类| 国产欧美日韩免费 | 狠狠干男人的天堂 | 成人18视频 | 一区二区三区入口 | 91天天色| 91在线观看视频 | 日韩欧美中文一区 | 爱情岛成人 | 肉丝袜脚交视频一区二区 | 影音先锋成人网 | 婷婷五月综合缴情在线视频 | 欧美一区二区三区久久成人精品 | 一区视频免费观看 | 日本在线成人 | 久久丫精品久久丫 | 日韩男人的天堂 | 日本爱爱免费视频 | 欧美日韩成人一区二区在线观看 | 免费黄在线 | 欧美黑人做爰爽爽爽 | 国产精品成人av性教育 | 天天看夜夜 | 亚洲图片欧美 | 精品国模一区二区三区欧美 | 国产午夜一区二区三区 | 亚洲精品综合精品自拍 | 噼里啪啦动漫高清在线观看 | 海量av| 色综合五月 | 天天操天天干天天爽 | 一区在线不卡 | 黄色网址视频 | 你懂的在线免费观看 | 免费av观看网站 | 国产一级特黄aaa大片 | 国产一区二区三区免费观看 | 午夜毛片在线观看 |