珂朵莉树 ODT

news/2025/10/4 16:52:25/文章来源:https://www.cnblogs.com/StarsIntoSea/p/19125730

能干什么/局限性

高效处理区间平推(区间赋值)的问题。

在随机数据下飞快。

如果没有区间平推,或者区间平推的操作数量可以被卡得很少甚至没有,就不适用。

前置知识

  • set

没了。

建点

每个点要维护一个区间,以及这个区间的信息。表示这个区间的信息都是相等的。

所有的点维护的区间都没有交集,且并集就是的区间就是 \(1\sim n\)

struct node{int l,r; //维护的区间mutable int val; //维护的信息//mutable 表示可以直接在 set 中修改node(int L,int R=-1,int VAL=0){l=L,r=R,val=VAL;}bool operator<(const node&other)const{return l<other.l;}
};
set<node> odt;

分裂(split)

传进去一个参数 \(pos\),表示把包含 \(pos\) 的区间 \([l,r]\),分裂成 \([l,pos-1]\)\([pos,r]\),并返回后一个区间的迭代器。

特别地,若 \(pos\) 所在的区间的左端点就是 \(pos\),那么不分裂直接返回这个区间。

auto split(int pos){auto it=odt.lower_bound(node(pos));if(it!=odt.end() && it->l==pos) return it; //特判it--;int l=it->l,r=it->r,val=it->val;odt.erase(it);odt.insert(node(l,pos-1,val)); //每个点维护的区间信息都是相同的return odt.insert(node(pos,r,val)).first;
}

平推(assgin)

如果只分裂那肯定是不行的,复杂度只会越来越高。

平推就是可以把一堆区间赋值成相同的,就可以合并起来。这也是 ODT 必须要有的平推操作,而且这也关乎到复杂度。

void assgin(int l,int r,int k){auto itr=split(r+1),itl=split(l);odt.erase(itl,itr);odt.insert(node(l,r,k));
}

所有的 ODT 的题必须要有的操作就这俩。

剩下的就全看实际题目了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927355.shtml

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

相关文章

2025多校CSP模拟赛2

2025多校CSP模拟赛2 狂写大树套树通过 \(T3\) 的救赎感。 T1 查询 第一眼感觉不好做。 首先直接找绝对没前途,考虑二分 \(v\)。 问题变成了统计 \(a_j+b_j\times c_i\le v\) 的数量,变换一下变成: \[c_i\le \frac{v…

网站查询访问界面设计模式读后感

如今人们对于住宅需求早已今非昔比&#xff0c;不但需要足够大的空间&#xff0c;而且对于住宅所处位置是否交通便利&#xff0c;环境如何&#xff0c;光照情况都有要求&#xff0c;但是最关注的问题还是住宅的安全问题。如今的社会科技发达&#xff0c;不法分子的手段也层出不…

io多路复用:reactor模型的封装及与上层简单业务的搭建(webserver)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:深入了解linux网络—— 基于UDP实现翻译和聊天功能

详细介绍:深入了解linux网络—— 基于UDP实现翻译和聊天功能pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

详细介绍:vLLM - GPUModelRunner

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Rewind: Codeforces Round 1055 (Div.1+Div.2)

E. Monotone Subsequence \(\text{time limit: 2000 ms}\\\text{memory limit: 1024 MB}\) 这是一道交互题 题意: 由 \(\text{Thm. Erdős–Szekeres}\) ,我们知道对任意长为 \(n^2+1\) 的排列必有一个长为 \(n+1\) …

10.4模拟赛总结

2025-2026 赛季 OIFHA 第三十四场 NOIP 模拟赛总结 一休尼(forever) 原题:CF5E Bindian Signalizing 长度为 \(n\) 的整数序列 \(a\) 。求整数对 \((i,j)\),\(i,j\in [1,n]\) 的个数,满足 \((i,j)\) 之间存在至少…

做网站动图的软件游戏开发软件有哪些

一、简介 java8新添加了一个特性&#xff1a;流Stream。Stream让开发者能够以一种声明的方式处理数据源&#xff08;集合、数组等&#xff09;&#xff0c;它专注于对数据源进行各种高效的聚合操作&#xff08;aggregate operation&#xff09;和大批量数据操作 (bulk data op…

重庆网站设计建设备案网站服务内容

探索AI图像安全&#xff0c;助力可信AI发展 0. 前言1. 人工智能发展与安全挑战1.1 人工智能及其发展1.2 人工智能安全挑战 2. WAIC 2023 多模态基础大模型的可信 AI2.1 WAIC 2023 专题论坛2.2 走进合合信息 3. AI 图像安全3.1 图像篡改检测3.2 生成式图像鉴别3.3 OCR 对抗攻击技…

01.linux基础

01.linux基础 1.你平时在公司主要做什么?2.你们原来公司的网站架构是怎么样的?3.你对哪一块比较熟练或者精通?4.介绍一下负载均衡?5.lvs 内部原理?6.nginx lvs haproxy 三个有什么区别?7.lvs 主要3种工作模式原…

详细介绍:Kubernetes实战:MariaDB误删恢复与数据持久化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

我的世界封面制作网站企业网站软件

一&#xff1a;prototype大概概念和用途“prototype”字面翻译是“原型”&#xff0c;是javascript实现继承的主要手段。粗略来说就是&#xff1a;prototype是javascript中的函数(function)的一个保留属性&#xff0c;并且它的值是一个对象&#xff08;我们可以称这个对象为&qu…

泊头做网站的大宗商品交易平台上市公司

Puppeteer 是 Chrome 开发团队在 2017 年发布的一个 Node.js 包&#xff0c;用来模拟 Chrome 浏览器的运行。demo只支持将简单不需要翻页&#xff0c;不需要登陆的页面转换为图片需要node环境&#xff0c;以及npm或cnpm包管理工具(自行百度)开始进入一个新的项目目录&#xff0…

微服务项目->在线oj系统(Java-Spring)--竞赛管理 - 教程

微服务项目->在线oj系统(Java-Spring)--竞赛管理 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

2025整体橱柜厂家TOP企业品牌推荐排行榜,云南昆明整体橱柜全瓷砖,开放式厨房,经济型,一站式无烟柴火灶,嵌入式,智能,多功能,全屋无烟柴火灶整体橱柜公司推荐

在当前整体橱柜市场中,消费者面临着诸多选择难题。部分产品存在耐用性不足的问题,使用一段时间后柜体易出现受潮、霉变现象,尤其是在潮湿的厨房环境中,这一问题更为突出;有些产品虽然外观设计美观,但环保性能不达…

AutoOps:简化自管理 Elasticsearch 的旅程 - 指南

AutoOps:简化自管理 Elasticsearch 的旅程 - 指南2025-10-04 16:27 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

巩义网站建设费用龙华品牌网站建设

文章目录 同版本多实例配置部署、启动、连接 不同版本多实例配置初始化initialize-insecure 含义 启动 同版本多实例 配置 mkdir -p /data/330{7..9}/data chown -R mysql.mysql /data/* cat > /data/3307/my.cnf <<EOF [mysqld] usermysql basedir/usr/local/mysql …

vite-vue3脚手架(参考帝莎编程-后台管理系统开发)

一 创建项目vite-vue3-app 项目原型: http://shopadmin.dishawang.com/#/ vite: https://vitejs.cn/vite3-cn/ # npm 7+, extra double-dash is needed: npm create vite@latest vite-vue3-app -- --template vuecd …

上传文件的后端程序handleFileUpload()、getOriginalFilename()、UUID及Yaml配置

handleFileUpload()是Element UI中用于自定义文件上传行为的函数,通过http-request属性绑定实现。该函数会在文件选择后触发,负责处理文件上传逻辑,包括文件格式验证、上传进度控制及服务器交互等。 核心功能‌文件…