块状链表

news/2025/11/19 18:03:34/文章来源:https://www.cnblogs.com/headless-piston/p/19243542

平衡树

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.mzph.cn/news/970254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常规链表建立

常规链表建立 列举常见的顺序表功能实现函数,进行编程练习常规顺序表(sequeue)建立定义一个顺序表的大小,结构体中采用数组而不是另一个堆内存空间表示存储的数据信息。 typedef int data_t; // 定义顺序表中数据元…

HDLBits网站学习——Procedures

Always block (combinational)由于数字电路由通过导线连接的逻辑门构成,任何电路都可以表示为模块和赋值语句的某种组合。但有时这并非描述电路最便捷的方式,过程块(always块是其中一种)提供了另一种电路描述语法。…

win11为什么我的不显示虚拟机平台选项

可能显示的是英文的 virtual machine platform 而不是中文的 虚拟机平台

2025 年最新http 代理服务商权威推荐排行榜:百万级 IP 资源 + 国际认证高可用率,爬虫 / 动态 / 高匿代理优选指南不限量 http 代理/独享 http 代理平台推荐

引言 在全球数字化浪潮下,大数据采集、跨境业务协同、网络安全防护等场景对 http 代理服务的依赖度持续攀升,市场规模年增速超 25%。然而行业资质参差不齐,部分服务商存在 IP 资源陈旧、匿名性不达标、稳定性不足等…

安装部署opengauss

背景: 项目需要,适配opengauss 环境准备 基础环境准备 准备一台4核8G的openEuler 22.03 (LTS-SP4)系统服务器1.关闭selinux setenforce 0 sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config2.关闭…

不只做语音,ElevenLabs 推出图像和视频生成平台;博通推出语音 AI 芯片,实现端侧 TTS 和实时翻译丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态…

海外直播源码选型指南:技术架构与合规性细节解析及成品多语言直播APP源码交付

除了海外客户对国际版多语言的直播APP咨询外,近期也接到了国内的软件服务商给自己客户开发的相关软件咨询。一般主要关注的就是价格和源码交付的细节,今天就来整体说明下我们海外国际版多语言直播语聊类APP成品源码的…

视频汇聚平台EasyCVR如何通过可视化管理与远程运维赋能安防“一张网”

在视频监控系统规模日益庞大的今天,无论是智慧城市、大型企业还是连锁门店,动辄成百上千路的摄像头管理已成为运维团队的巨大挑战,传统运维模式普遍面临:设备状态不透明:设备是否在线、运行是否健康,只能靠人工定…

单向循环链表接口设计

单向循环链表接口设计@file name: 单向循环链表接口设计 @brief :设计单向循环链表,实现各种功能函数并测试 @author m15629473867@163.com @date 2025/11/19 @version 1.0 @property @note CopyRight (c) 2025-2026…

2025 最新雕刻机源头厂家权威推荐榜:自主研发专利加持 + 国际测评认证,高精度设备优选清单数控雕刻机/激光雕刻机/小型雕刻机/金属雕刻机公司推荐

引言 在全球制造业向精密化、定制化转型的浪潮下,雕刻机作为核心加工装备,其性能表现直接影响生产效率与产品品质。当前市场品牌数量激增,技术水平参差不齐,部分产品存在精度波动大、适配场景有限、售后响应迟缓等…

linux firewall

在 Linux 系统中,防火墙(Firewall)主要用于控制网络流量,允许或拒绝特定的网络连接。常见的防火墙工具包括:1. iptables(传统方式) 这是 Linux 系统中最常用的防火墙工具,适用于大多数基于 iptables 的发行版(…

2025 年 11 月高温老化房厂家推荐排行榜,老化室、高温老化室、高温房、熟化房、固化房、恒温恒湿室、恒温房、恒温恒湿房公司推荐

2025 年 11 月高温老化房厂家推荐排行榜:老化室、高温老化室、高温房、熟化房、固化房、恒温恒湿室、恒温房、恒温恒湿房公司推荐 随着工业制造和科研测试领域的快速发展,高温老化房、老化室、高温老化室、高温房、熟…

2025 年 11 月耐磨钢板厂家推荐排行榜,高耐磨钢板,高锰耐磨钢板,焊达500耐磨钢板,进口复合耐磨钢板,双金属复合耐磨钢板公司推荐

2025年11月耐磨钢板厂家推荐排行榜:高耐磨钢板、高锰耐磨钢板、焊达500耐磨钢板、进口复合耐磨钢板、双金属复合耐磨钢板公司推荐 行业背景与发展现状 耐磨钢板作为工业领域的关键基础材料,其技术发展水平直接关系到…

wps如何快速交换列(调整列顺序),删除多个不连续的列

写表格的时候,最常见的两个小需求就是:把某两列换个位置,或者干脆删掉几列。其实这事儿不用折腾复杂功能,靠几招顺手的操作,几秒钟就能搞定。下面我把自己在 WPS 表格里常用的方法整理一下,能用鼠标的就用鼠标,…

2025 年 11 月耐磨板厂家推荐排行榜,国产耐磨板,悍达耐磨板,堆焊耐磨板,进口耐磨板,MN13耐磨板,NM360-NM600高强度耐磨板,高铬合金耐磨板公司推荐!

2025年11月耐磨板厂家推荐排行榜:专业指南助力工业设备升级 在工业生产领域,耐磨板作为关键材料,其性能直接影响设备使用寿命和运营效率。随着2025年工业技术标准的不断提升,各类耐磨材料在矿山机械、工程设备、物…

视频融合平台EasyCVR助力守护渔业牧区安全与增效

视频融合平台EasyCVR助力守护渔业牧区安全与增效在广袤的渔业水域和牧区草原,传统的安全管理方式正面临着巨大的挑战。地域广阔、环境复杂、人力监管成本高、风险响应滞后等问题,长期以来制约着农牧业的现代化发展。…

2025 最新推荐!精雕机厂家口碑排行榜,国际协会测评认证 + 多行业适配实力权威发布高校合作精雕机/东莞精雕机/广东精雕机公司推荐

引言 在全球智能制造技术高速迭代的浪潮下,精雕机作为高精度加工领域的核心装备,其精度控制、稳定性与行业适配能力已成为影响科研创新突破与企业生产效能的关键因素。当前市场中,部分厂家存在技术储备不足、定制响…

2025 最新供水设备源头厂家推荐排行榜:无负压 / 恒压 / 变频供水设备实力品牌精选

引言 随着新型城镇化与工业智能化的快速发展,供水设备作为民生保障与产业运行的核心支撑,其品质稳定性、技术适配性与节能效能愈发关键。当前市场中品牌良莠不齐,部分小厂家缺乏核心技术与合规认证,产品存在运行故…

2025 最新限制器厂家权威推荐榜:国际测评认证 + 年产超 20 万套实力品牌,生产与服务全方位评估展现卓越制造能力限制器/扭力限制器/扭矩限制器公司推荐

引言 在全球工业自动化升级浪潮下,传动系统过载保护成为保障生产安全与效率的核心环节,限制器(含扭力限制器、扭矩限制器)的性能表现直接影响设备寿命与运营成本。当前市场品牌鱼龙混杂,性能差异显著,为破解采购…

2025 年安全联轴器厂家最新推荐榜单:权威测评优质厂家 ,铸就传动安全与品质保障标杆

引言 在全球工业自动化升级浪潮下,传动系统的安全防护成为决定生产连续性与运营效益的核心要素,安全联轴器作为过载保护关键部件,其性能可靠性备受行业关注。据国际传动设备协会(IDA)2025 年度测评报告显示,全球…