【学习】线段树的动态开点

ZeroTier网络创建后必做的3个高级设置:自定义路由、流量规则与Moon节点规划 本文详细介绍了ZeroTier网络创建后的3个高级设置:自定义路由、流量规则与Moon节点规划。通过自定义路由实现子网互通,利用精细化流量控制规则提升安全性,部署Moon节点优化网络延迟和性能,帮助用户全面提升异地组网体验。 阅读详情

就是用哪里开哪里,每次访问之前看看是否为空,为空就新建一个节点。
代码量小,非常好用。
###题目来源:BZOJ 1012
###代码:

#include <cstdio>
#include <iostream>
#define mid ((l+r)>>1)
typedef long long ll;
const int maxn = 200010;
struct Tree{
	ll mx;
	Tree* ch[2];
} T[maxn*20], *root;
ll cnt, D, m, Pre = 0, pp;
Tree* get(){return &T[++cnt];}
void insert(Tree *now, int l, int r, ll val, int pos){
	now->mx = std::max(now->mx, val);
	if(l == r) return;
	int wh = 1; if(pos <= mid) wh = 0;
	if(now->ch[wh] == NULL) now->ch[wh] = get();
	insert(now->ch[wh], wh == 0 ? l : mid+1, wh == 0 ? mid : r, val, pos);
}
ll que(Tree *now, int l, int r, int pos1, int pos2){
	if(pos1 == l && pos2 == r) return now->mx;
	if(pos2 <= mid) return que(now->ch[0], l, mid, pos1, pos2);
	if(pos1 >= mid+1) return que(now->ch[1], mid+1, r, pos1, pos2);
	return std::max(que(now->ch[0], l, mid, pos1, mid),que(now->ch[1], mid+1, r, mid+1, pos2));
}
int main(){
	scanf("%lld%lld", &m, &D);
	root = get();
	for(int i = 1; i <= m; i ++){
		char cc[2]; ll x;
		scanf("%s%lld", cc, &x);
		if(cc[0] == 'A'){
			x = (Pre+x)%D;
			insert(root, 1, m, x, ++pp);
		}else{
			Pre = que(root, 1, m, pp-x+1, pp);
			printf("%lld\n", Pre);
		}
	}
	return 0;
}
告别‘Duang’的一声:手把手解决RK3588开发板PCIe初始化卡死问题(DTS修改实战) 本文详细介绍了解决RK3588开发板PCIe初始化卡死问题的完整过程,包括问题诊断、DTS文件修改及编译烧写步骤。通过禁用未使用的PCIe硬件资源,有效解决了启动卡死问题,为嵌入式开发者提供了实用的调试方法和经验总结。 阅读详情

相关推荐

SAP系统中PP模块全配置文档

配置路径IMG>SAP NetWeaver>常规设置>维护日历>工厂日历事务代码SCAL要求传输工厂代码描述日历代码日历描述起始日期星期一星期二星期三星期四星期五星期六星期日有效开始日期有效结束日期1000南微医学工厂MT南微医学工厂日历√√√√√√√201820502.4定义工厂配置路径IMG>生产>物料清单>常规数据>定义BOM状态事务代码OS23要求传输配置路径IMG>生产>主数据>资源>常规数据>标准值>定义参数。

yanzibing99的博客 1892

BZOJ 3531 (树链剖分,线段树动态开点)

首先读完题,仔细观察一下,如果按照常规写法,那么对于每一个宗教来说都应该储存当前宗教下所有城市的评价,即建立C棵线段树去维护宗教下的所有城市,但是这里如果直接开数组维护很明显会爆内存,观察到由于每个宗教来说并不是所有城市都为有效值,而只是部分城市,考虑到这一点,可以选择动态的在线段树上开结点去维护城市评价。 对于动态开结点的操作,我是这么处理的,首先开一个大数组表示结点,前100000个表示宗教

每一次AC都是一种感动 1132

别再傻傻分不清了!Anaconda和Miniconda到底选哪个?附保姆级安装与镜像源配置(Windows/Mac)

本文详细解析了Anaconda和Miniconda的核心差异,包括体积、预装内容、系统资源占用等关键维度,并提供了针对不同需求的决策框架。附有Windows和Mac双平台的详细安装与配置指南,帮助用户根据实际需求选择最适合的conda工具,提升开发效率。

weixin_30315723的博客 426

bzoj1095动态点分治

写在正文前的例行吐槽: 我终于,终于,终于也是写过动态点分治的人了。。。 加上动态dp和动态树是不是就可以集齐套装召唤神龙了呢。。(思考ing) 动态点分治: 你会碰到一类问题。。有多个修改询问之类的操作。。可以用一次点分治回答一次询问 这时候我们可以把点分树建出来。。。 点分树有一些性质: 1.树高不超过log层。(显然吧orz。。。) 2.在进行点分治时,套路就是从当前点出发向...

shiveringkonnyaku的博客 312

SPSS_Process—简单&平行&链式中介模型

本篇文章介绍采用SPSS的插件Process对简单中介、链式中介、平行中介模型进行检验的操作方法及结果解读。

m0_54401011的博客 4万+

1、世界级模拟电路设计指南

本文详细探讨了模拟电路设计的各个方面,从基础概念到实际应用,涵盖了元件选择、滤波器设计、反馈系统、噪声问题以及SPICE仿真的优缺点。文中还提供了设计实例和无计算机设计方法,旨在帮助工程师提升模拟电路设计的效率与可靠性。

s1t2u3的博客 97

【bzoj2733】 [HNOI2012] 永无乡

sb题 合并:并查集+线段树启发式合并,注意动态开点 查询:直接查对应线段树的K大。 时间复杂度O(qlog2n)O(q\log^2 n)#include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a,_=b;i<=_;i++) #define per(i,a,b) for(int i=a,_=b;i>=

GEOTCBRL 829

【Java核心高阶进阶】44-Java8核心新特性

模块十:Java新特性演进 · 第 1 篇Java 8 是 Java 语言历史上最重要的一次发布,它引入的函数式编程范式从根本上改变了 Java 的编码方式。即便到了 JDK 21 的今天,Lambda、Stream、Optional 仍是日常开发的高频工具。本篇将深入这些特性的语法、原理与底层机制,帮助你不仅会用,更知其所以然。

gaochufukanyongren的博客 24

[Bzoj5358][Lydsy1805月赛]口算训练(预处理+动态开点线段树)

5358: [Lydsy1805月赛]口算训练 Time Limit:5 SecMemory Limit:512 MBSubmit:318Solved:105[Submit][Status][Discuss] Description begin.lydsy.com/JudgeOnline/upload/201805.pdf Input ...

weixin_30722589的博客 152

YOLO26涨点改进| TGRS 2026 | 独家自研创新、检测头改进篇| AHATHead自适应混合注意力检测头,二次创新,强化特征表达与目标判别能力,适合遥感小目标检测、小目标检测有效涨点

🔥本文提出了一种改进YOLO26模型的AHATHead自适应混合注意力检测头,通过融合全局与局部注意力机制增强特征表达能力。该方法采用动态权重分配策略,在预测阶段自动调整关键区域与通道特征权重,有效提升小目标和密集场景的检测性能。实验表明,AHATHead在保持较高推理效率的同时,显著提高了目标定位精度与类别判别能力。文章详细介绍了模块结构、实现原理和代码集成步骤,并提供了两种改进配置方案(yolo26_AHATHead.yaml和yolo26_RFHA-YOLO-AHATHead.yaml)

Ai缝合怪、助力小伙伴高效发论文 159

C#上位机3D可视化:HelixToolkit.Wpf集成点云/模型(机器人臂姿态实时监控)

核心控件是3D可视化的核心,需搭配和网格辅助定位;模型加载:按关节拆分机械臂模型,通过组合平移+旋转实现姿态控制;姿态更新:将机器人关节角度转换为3D模型的旋转变换,工业场景需从控制器实时获取角度;点云渲染:通过实现点云加载,需注意坐标系转换和性能优化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 716

线段树学习笔记 - 动态开点线段树

线段树学习笔记。线段树学习笔记 - 练习题(1)。线段树学习笔记 - 练习题(2)。线段树学习笔记 - 练习题(3)。算法讲解114【扩展】线段树专题5-开点线段树、区间最值和历史最值,题目都是左神视频上的,思路也可以看这个视频。

Jwasx的博客 1194

【开源电机驱动】位置环控制

这是三闭环里的最后一个:位置闭环控制。如果你认真的阅读并推导了前章节,那么这一节将会很好理解。一如既往,我会使用简练的语言来描述复杂的问题。本章节主要涉及位置环的一些概念,以及控制框图。文章不会涉及具体的代码。

BadBoyHolly的博客 6095

[动态开点线段树][学习笔记]

权值线段树 所谓权值线段树,就是指线段树内存的是权值。好像是废话。给出一些数,要查询一个区间内的数的个数。这时可以用权值线段树,开个n(n为给出的数的最大值)个点的线段树。然后就能轻松的维护了当然树状数组更简单 动态开点 为什么要动态开点呢?当然是因为空间不够啊。比如还是上面那个例子。加入给出的数的最大值为\(10^{12}\),并且无法离散化,显然空间开不下。那么就需要动态开点了。 思...

diecimu4798的博客 138

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

动态开点线段树学习笔记

动态开点线段树学习笔记 前言 这篇博客只是为了后面主席树做铺垫的,而且动态开点线段树非常的简单,所以就讲的比较少。 正文 我们都知道,普通的线段树的空间是4倍,因为会有很多不需要的节点,那么动态开点线段树就被发明出来了。 所谓动态开点线段树,就是每一次如果我们需要一个新的节点,那么我们就给他开一个新的节点,这样我们就不需要一下子开非常大的个数,这种思想依旧使用与主席树。简单讲一下主席树,...

weixin_30512043的博客 323

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

「学习笔记」动态开点线段树

Dynamic Opening

smStoneBunSp 529

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

权值线段树+动态开点(学习小结)

首先先上一道板题:把它看懂就OK了,其实这个跟普通的线段树也没太大区别,就是存的是出现的次数。 CODE #include&lt;algorithm&gt; #include&lt;cstdio&gt; #define fo(i,a,b) for (int (i)=(a);(i)&lt;=(b);(i)++) const int N=200050; using namespace s...

gankinghand的博客 2502

线段树动态开点---洛谷P1908逆序对

题目链接https://www.luogu.org/problem/P1908 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出...

孤风的博客 712

【数据结构】动态开点线段树

【代码】【数据结构】动态开点线段树。

2302_80811345的博客 523

线段树学习笔记

线段树学习笔记

hacker__man的博客 326

线段树

线段树 简介 (真的是简介,主要是我懒得写) 线段树:用来求一些区间问题,一种比较好理解代码也不难写的数据结构。 线段树,顾名思义,就是一棵由线段组成的树。每个线段就是一个区间。最下面的叶子结点的区间长度是\(1\),往上两个区间一合并,最后合并成一个区间。 每个区间的左儿子编号是该区间的编号乘\(2\),右儿子编号是左儿子编号加一(有的话) 线段树模板 线段树支持区间加,区间减(和加一样),区间...

weixin_30606461的博客 85

【学习笔记】线段树详解(全)

【学习笔记】线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来。。。 【目录】 【基础】作者:\((Silent\)_\(EAG)\) 【懒标记】作者:\((Silent\)_\(EAG)\) 【扫描线】作者:\((IC\)_\(QQQ)\) 【权值线段树】作者:\((Xing\)_\(Ling)\) 【动态开点】作者:\((X...

weixin_30929011的博客 199

洛谷P3313 [SDOI2014] 旅行【关于deepseek一遍A紫题这件事】【动态开点线段树模板】题解

想做个紫题玩玩,动态开点线段树不会,遂调戏AI。对于每个结点,维护以下信息。于是采用动态开点线段树。

MorningLa的博客 257

线段树 java_线段树合并:从入门到放弃(示例代码)

感谢这篇博客(这里跳转)以及邱宇大神的讲解,我也算作入门(自闭)了。需要掌握的前置知识点:动态开点线段树、权值线段树。一、合并思想线段树合并,就是指建立一颗新的线段树,保存原有的两颗线段树的信息。那么就是:假设现在合并到了线段树的a、b某一个pos如果a在这个区间有pos,b没有,那么新的线段树pos位置赋值为a如果b在这个区间有pos,a没有,那么新的线段树pos位置赋值为b如果a、b都有,那么...

weixin_39575937的博客 217

以逆序对为中心的奇技淫巧&离散化&权值线段树&动态开点线段树

本文将详细讲解以下内容: 离散化 权值线段树 动态开点线段树 文章目录逆序对问题思路1 归并排序思路2 离散化+区间维护PART1 离散化方法1方法2PART2 区间维护数据结构 逆序对问题 直接看这道题目把: LGOJ P1908 逆序对 思路1 归并排序 详情看这篇博客。 思路2 离散化+区间维护 由于我们发现原数的范围过大(≤109\leq 10^9≤109),而我们求逆序对只需要知道...

日居月诸的博客 356

洛谷P3960 列队 NOIp2017 线段树/树状数组/splay

正解:动态开点线段树 解题报告: 传送门! 因为最近学主席树的时候顺便get到了动态开点线段树?刚好想起来很久很久以前就想做结果一直麻油做的这题,,,所以就做下好了QAQ 然后说下,这题有很多种方法,我目前是先只写个最傻逼的方法,等学了splay什么的再来upd一下QAQ(这题好像有,线段树.树状数组.splay等各种方法,我可能都会写只要我麻油咕QAQ 然后就直接进入正题QA...

qq_42692055的博客 210
上一篇: 【学习】线段树和并
下一篇: 个人网站地址,欢迎访问,交流。
yhf_2015
博客等级 码龄11年 82粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值