当前位置: 首页 > news >正文

块状链表

平衡树

constexpr int block=500,inf=2e9;
struct BlockList{vector<vector<int>> b;void split(size_t idx){if(b[idx].size()>2*block){size_t mid=b[idx].size()/2;vector<int> temp;temp.insert(temp.begin(),b[idx].begin()+mid,b[idx].end());b[idx].resize(mid);b.insert(b.begin()+idx+1,temp);}}void merge(size_t idx){if(b[idx].empty()&&b.size()>1){b.erase(b.begin()+idx);return;}if(idx+1<b.size()&&b[idx].size()+b[idx+1].size()<block*2){b[idx].insert(b[idx].end(),b[idx+1].begin(),b[idx+1].end());b.erase(b.begin()+idx+1);}}BlockList(){b.push_back({});}void insert(int x){for(size_t i=0;i<b.size();i++)if(!b[i].empty()&&x<b[i].back()){auto it=lower_bound(b[i].begin(),b[i].end(),x);b[i].insert(it,x);split(i);return;}if(b.back().size()<2*block) b.back().push_back(x);else b.push_back({x});}void erase(int x){for(size_t i=0;i<b.size();i++)if(x<=b[i].back()){auto it=lower_bound(b[i].begin(),b[i].end(),x);if(*it!=x) return;b[i].erase(it);merge(i);return;}}size_t rnk(int x){size_t cnt=0;for(size_t i=0;i<b.size();i++){if(b[i].empty()) continue;if(b[i].back()<x) cnt+=b[i].size();else{auto it=lower_bound(b[i].begin(),b[i].end(),x);cnt+=it-b[i].begin();return cnt+1;}}return cnt+1;}size_t kth(size_t x){size_t cnt=0;for(size_t i=0;i<b.size();i++){if(cnt+b[i].size()>=x)return b[i][x-cnt-1];cnt+=b[i].size();}return -1;}int pre(int x){int res=-inf;for(size_t i=0;i<b.size();i++){if(b[i].empty()) continue;if(b[i].back()<x) res=b[i].back();else{auto it=lower_bound(b[i].begin(),b[i].end(),x);if(it!=b[i].begin())res=*--it;return res;}}return res;}int nxt(int x){int res=inf;for(size_t i=0;i<b.size();i++){auto it=upper_bound(b[i].begin(),b[i].end(),x);if(it!=b[i].end()){res=*it;return res;}}return res;}
}rope;

文艺平衡树

constexpr int block=350;
struct BlockList{vector<vector<int>> b;vector<char> tag;BlockList(){b.push_back({});tag.push_back(0);}inline void push_down(size_t idx){if(!tag[idx]) return;reverse(b[idx].begin(),b[idx].end());tag[idx]=0;}void merge(size_t idx){if(idx+1>=b.size()) return;if(b[idx].size()+b[idx+1].size()<block*2){push_down(idx),push_down(idx+1);b[idx].insert(b[idx].end(),b[idx+1].begin(),b[idx+1].end());b.erase(b.begin()+idx+1);tag.erase(tag.begin()+idx+1);}}size_t split_pos(size_t pos){size_t cnt=0;for(size_t i=0;i<b.size();i++){if(cnt+b[i].size()>pos){push_down(i);size_t idx=pos-cnt;if(idx==0) return i;vector<int> temp;temp.assign(b[i].begin()+idx,b[i].end());b[i].resize(idx);b.insert(b.begin()+i+1,temp);tag.insert(tag.begin()+i+1,0);return i+1;}cnt+=b[i].size();if(cnt==pos) return i+1;}return b.size();}inline size_t bel(size_t x){size_t cnt=0;for(size_t i=0;i<b.size();i++)if(cnt+b[i].size()>=x) return i;else cnt+=b[i].size();return -1;}void insert(int x){if(b.back().size()<block) b.back().push_back(x);else b.push_back({x}),tag.push_back(0);}void rev(int l,int r){size_t x=split_pos(l),y=split_pos(r+1);reverse(b.begin()+x,b.begin()+y);reverse(tag.begin()+x,tag.begin()+y);for(size_t i=x;i<y;i++) tag[i]^=1;if(y>0) merge(y-1);if(x>0) merge(x-1);}void print(){for(size_t i=0;i<b.size();i++){push_down(i);for(int x:b[i]) cout<<x<<' ';}}
}rope;
http://www.jsqmd.com/news/44840/

相关文章:

  • 常规链表建立
  • HDLBits网站学习——Procedures
  • win11为什么我的不显示虚拟机平台选项
  • 2025 年最新http 代理服务商权威推荐排行榜:百万级 IP 资源 + 国际认证高可用率,爬虫 / 动态 / 高匿代理优选指南不限量 http 代理/独享 http 代理平台推荐
  • 安装部署opengauss
  • 不只做语音,ElevenLabs 推出图像和视频生成平台;博通推出语音 AI 芯片,实现端侧 TTS 和实时翻译丨日报
  • 海外直播源码选型指南:技术架构与合规性细节解析及成品多语言直播APP源码交付
  • 视频汇聚平台EasyCVR如何通过可视化管理与远程运维赋能安防“一张网”
  • 单向循环链表接口设计
  • 2025 最新雕刻机源头厂家权威推荐榜:自主研发专利加持 + 国际测评认证,高精度设备优选清单数控雕刻机/激光雕刻机/小型雕刻机/金属雕刻机公司推荐
  • linux firewall
  • 2025 年 11 月高温老化房厂家推荐排行榜,老化室、高温老化室、高温房、熟化房、固化房、恒温恒湿室、恒温房、恒温恒湿房公司推荐
  • 2025 年 11 月耐磨钢板厂家推荐排行榜,高耐磨钢板,高锰耐磨钢板,焊达500耐磨钢板,进口复合耐磨钢板,双金属复合耐磨钢板公司推荐
  • 2025 年 11 月耐磨板厂家推荐排行榜,国产耐磨板,悍达耐磨板,堆焊耐磨板,进口耐磨板,MN13耐磨板,NM360-NM600高强度耐磨板,高铬合金耐磨板公司推荐!
  • 视频融合平台EasyCVR助力守护渔业牧区安全与增效
  • 2025 最新推荐!精雕机厂家口碑排行榜,国际协会测评认证 + 多行业适配实力权威发布高校合作精雕机/东莞精雕机/广东精雕机公司推荐
  • 2025 最新供水设备源头厂家推荐排行榜:无负压 / 恒压 / 变频供水设备实力品牌精选
  • 2025 最新限制器厂家权威推荐榜:国际测评认证 + 年产超 20 万套实力品牌,生产与服务全方位评估展现卓越制造能力限制器/扭力限制器/扭矩限制器公司推荐
  • 2025 年安全联轴器厂家最新推荐榜单:权威测评优质厂家 ,铸就传动安全与品质保障标杆
  • 2025 年智慧停车系统、高校智慧停车系统十大品牌权威推荐!破解停车难题,这些优质品牌值得选择
  • 实用指南:智慧家政系统:未来家庭管理的核心技术解析
  • 【广东工业大学东莞理工学院联合主办,IEEE出版】第六届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2025)
  • 给Snipe-IT添加扫码盘点
  • 2025 最新推荐沈阳阳光房厂家实力榜单:国际协会测评认证 + 专利技术加持,20000 平厂房保障品质与交付沈阳阳光房公司推荐
  • 2025 最新电磁灶厂家权威推荐榜:聚焦商用大功率 / 智能款,国际测评认证口碑实力双优品牌合集商用多头/商用智能/SUKIO/3500 瓦大功率/SUKI0/硕高电磁灶公司推荐
  • 移动端反射探针格式用什么比较合理
  • linux find 删除
  • 完整教程:Navicat - 连接 mysql 、 sqlserver 数据库 步骤与问题解决
  • 2025年平衡重制造企业权威推荐榜单:平衡块订做/后平衡铁工厂/尾部配重铁源头厂家精选
  • 03.入门篇-集成开发环境