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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ 1503 treap

發布時間:2025/4/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1503 treap 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

思路:
treap (算是基本操作吧…..)
加減的操作數很少 就暴力好啦
每回判斷一下最小的數是不是比M小
如果是 就刪,繼續判斷

搞定。

//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n,M,xx,size,root,jy,ans; char op[3]; struct Treap{int ch[2],rnd,cnt,sz,v;}tr[300050]; void Upd(int k){tr[k].sz=tr[tr[k].ch[0]].sz+tr[tr[k].ch[1]].sz+tr[k].cnt;} void rot(int &k,bool f){int t=tr[k].ch[f];tr[k].ch[f]=tr[t].ch[!f],tr[t].ch[!f]=k,Upd(k),Upd(t),k=t;} void insert(int &k,int num){if(!k){k=++size;tr[k].sz=tr[k].cnt=1,tr[k].v=num,tr[k].rnd=rand();return;}tr[k].sz++;if(tr[k].v==num){tr[k].cnt++;return;}bool f=num>tr[k].v;insert(tr[k].ch[f],num);if(tr[tr[k].ch[f]].rnd<tr[k].rnd)rot(k,f); } void dfs(int k,int num){tr[k].v+=num;if(tr[k].ch[0])dfs(tr[k].ch[0],num);if(tr[k].ch[1])dfs(tr[k].ch[1],num); } int rank(int k,int num){if(tr[tr[k].ch[1]].sz>=num)return rank(tr[k].ch[1],num); else if(tr[tr[k].ch[1]].sz+tr[k].cnt>=num)return tr[k].v;else return rank(tr[k].ch[0],num-tr[tr[k].ch[1]].sz-tr[k].cnt); } int get_min(int k){if(tr[k].ch[0])return get_min(tr[k].ch[0]);return tr[k].v; } void del(int &k,int num){if(tr[k].v==num){if(tr[k].cnt>1)tr[k].cnt--,tr[k].sz--;else if(tr[k].ch[0]*tr[k].ch[1]==0)k=max(tr[k].ch[0],tr[k].ch[1]);else rot(k,tr[tr[k].ch[0]].rnd>tr[tr[k].ch[1]].rnd),del(k,num);}else tr[k].sz--,del(tr[k].ch[num>tr[k].v],num); } int main(){scanf("%d%d",&n,&M);for(int i=1;i<=n;i++){scanf("%s%d",op,&xx);if(op[0]=='I'){if(xx>=M)insert(root,xx);}else if(op[0]=='S')dfs(root,-xx);else if(op[0]=='A')dfs(root,xx);else {if(xx<=tr[root].sz)printf("%d\n",rank(root,xx));else puts("-1");}while(tr[root].sz&&(jy=get_min(root))<M)ans++,del(root,jy);}printf("%d\n",ans); }

轉載于:https://www.cnblogs.com/SiriusRen/p/6532155.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的BZOJ 1503 treap的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 美女娇喘| 一区二区三区爱爱 | a一级免费视频 | 成人在线观看国产 | 韩国一级淫一片免费放 | 主人性调教le百合sm | 日韩高清二区 | 特黄aaaaaaaaa毛片免费视频 | 国产综合精品一区二区三区 | 亚洲欧美一区在线 | 黄色永久视频 | 亚洲欧美综合另类 | 在线观看黄色av网站 | 91网站在线观看视频 | 99国产精品国产免费观看 | 国产中文字幕免费 | 豆花在线视频 | 亚洲成a | 亚洲丝袜在线视频 | 手机天堂网 | 伊人激情综合网 | 一级片aaaaa 国产又黄又粗又猛又爽 | 四虎成人网 | 精品一区亚洲 | av影片在线观看 | 91正在播放 | 激情五月婷婷在线 | 黄色网在线播放 | 最新色网址 | 国产图片一区 | 日本在线二区 | 九九热在线免费视频 | 久久天天东北熟女毛茸茸 | 成人黄页| 毛片基地站 | 欧美一区二区三区免 | 伊人午夜 | 被黑人猛躁10次高潮视频 | 日韩欧美第一区 | 亚洲爽片 | h部分肌肉警猛淫文 | 中文字幕国产在线观看 | www.日韩在线观看 | 手机在线免费视频 | 黄色综合网 | 日本大尺度激情做爰hd | 国产精品传媒在线观看 | 久久国内视频 | 欧美专区在线 | 国产精品视频无码 | 嫩草影院永久入口 | 一区二区三区亚洲 | 潘金莲一级淫片aaaaaa播放 | 国产精品一区二区电影 | 久久久久99精品成人片三人毛片 | 三级av在线免费观看 | 国产精品无码久久久久久电影 | 一本久道久久综合无码中文 | 97超碰中文字幕 | 日本国产亚洲 | 国产微拍一区 | 亚洲热在线观看 | 国产一区二区三区小说 | 视频二区三区 | 成人在线一区二区 | 日本免费久久 | 久久精品牌麻豆国产大山 | 天天干天天天 | 日本精品999| 国产九色91| 天天在线观看 | 亚洲一区二区精品 | 日韩国产网站 | 亚洲国产精品久久人人爱 | 性开放耄耋老妇hd | 亚洲2022国产成人精品无码区 | 新天堂av | 亚洲综合色在线 | 激情久久av| 日韩视频免费 | 国产精品2区 | 天天宗合网| a级在线播放 | 亚洲一二三四 | 日韩成人免费视频 | 中文字幕无人区二 | 蜜桃视频在线观看网站 | 老女人性视频 | 日本wwww视频| 老司机在线观看视频 | 老司机深夜视频 | 日韩在线一二 | 性爱动漫 | 日本泡妞xxxx免费视频软件 | 一区二区三区在线观看视频 | 欧洲av一区 | 乱lun合集小可的奶水 | 99久久一区二区 | 视频在线观看免费大片 |