首页 > 其他分享 >线段树笔记

线段树笔记

时间:2024-01-28 13:45:52浏览次数:23  
标签:return int 线段 tr mid 笔记 seg pushdown

void pushup(int tr){
	seg[tr]=seg[tr*2]+seg[tr*2+1];
} 
void build(int tr,int l,int r){
	if(l==r){
		seg[tr]=a[r];
		return ;
	}
	int mid=(l+r)/2;
	build(tr/2,l,mid);
	build(tr/2,mid+1,r);
	pushup(tr);
}
void pushdown(int tr,int l,int r){
	if(pls[tr]==0) return;
	int mid=(l+r)/2;
	pls[tr<<1]+=pls[tr];
	pls[tr<<1|1]+=pls[tr];
	seg[tr<<1]+=(mid-l+1)*pls[tr];
	seg[tr<<1|1]+=(r-mid)*pls[tr];
	pls[tr]=0;
}
void update(int tr,int l,int r,int x,int y){
	if(x<=l&&y>=r){
		seg[tr]+=z*(r-l+1);
		pls[tr]+=z;
		return ;
	}
	pushdown(tr,l,r);
	int mid=(l+r)/2;
	if(x<=mid) update(tr<<1,mid,x,y,z);
	if(y>mid) update(tr<<1|1,mid+1,x,y,z);
	pushup(tr);
}
void query(int tr,int l,int r,int x,int y){
	if(x<=l&&y>=r){
		return seg[tr];
	}
	pushdown(tr,l,r);
	int mid=(l+r)/2;
	if(x<=mid) ans+=query(tr<<1,mid,x,y,z);
	if(y>mid) ans+=query(tr<<1|1,mid+1,x,y,z);
	return ans;
}

标签:return,int,线段,tr,mid,笔记,seg,pushdown
From: https://www.cnblogs.com/wenzhihao2023/p/17992810

相关文章

  • 《构建之法》读书笔记2
        软件件开发分为几个阶段:玩具阶段→业余爱好阶段→探索阶段→成熟的产业阶段。而在我们学习软件开发时也会经历以下几个阶段,首先是玩具阶段,这个阶段可能也就像我们高考完填报志愿时那样,对计算机有点兴趣,幻想着做出什么有意思的软件。这个时候我们对软件这个东西还是不......
  • 《构建之法》阅读笔记3
        最后,邹欣探讨了团队协作和伦理责任在软件构建中的重要性。作者认为,一个成功的软件项目不仅需要技术上的卓越,更需要团队之间的良好合作和沟通。    首先,作者分析了团队协作的关键因素,包括沟通、信任、以及分工合作等方面。他提出了一些有效的团队管理策略和方......
  • 《构建之法》读书笔记1
         《构建之法》一书由软件工程领域的专家邹欣撰写,旨在探索现代软件工程的核心理念和关键实践。软件构建作为软件开发生命周期中的关键环节,对于确保软件质量、可维护性和可扩展性至关重要。在本书的第一篇中,邹欣深入剖析了构建的本质,并提出了一系列构建策略和方法。 ......
  • 《构建之法》阅读笔记1
      《构建之法:现代软件工程》是邹欣所著的一部引人深思的著作,它引领读者深入了解软件工程的本质,并提出了许多新颖而富有洞见的观点。   在书中,邹欣首先强调了软件工程中模块化与组件化的重要性。他指出,通过将复杂的系统分解为更小的模块,我们能够更轻松地管理和维护代码......
  • 《设计模式之禅》读书笔记
    参考  https://zhuanlan.zhihu.com/p/357889775 一、六大设计原则单一职责原则定义:应该有且仅有一个原因引起类的变更。举例:属性和行为拆分,例如setPassword(Stringpassword)和changePassword(Stringpassword)。单一职责原则提出了一个编写程序的标准,用“职责”或“......
  • CSAPP学习笔记——Chapter12 并行编程
    CSAPP学习笔记——Chapter12并行编程并发编程有着其独特的魅力,之前接触cuda编程的时候,感受到一些,没想到书里还有相关的内容。今天我们主要围绕进程,I/O多路复用,线程三种并发的方式,介绍并发编程的相关概念。并最终拓展chapter11讲中的echo服务器,使其能够处理多个客户端的连接请求......
  • 虚树学习笔记
    虚树学习笔记虚树,顾名思义,不是真实的树。在关于树的问题中,虚树起到缩小题目规模,优化算法的作用。算法思路引入P2495SDOI2011消耗战设\(dp[i]\)为\(i\)与所有该子树内资源丰富节点不联通的代价。如果\(u\)的儿子\(v\),不是资源丰富节点。\[dp[u]+=\min(w(u,v),dp[......
  • 【学习笔记】差分约束
    前言2024.1.27\(huge\)在讲不要忽略算法的细节时,以最短路和差分约束为例子。发现自己差分约束忘得差不多了,于是就有了这篇博客。负环在一张图中,若存在一条边权之和为负数的回路,则称这个回路为负环。在一张图中,若存在一条边权之和为正数的回路,则称这个回路为正环。如果一张......
  • 智能车学习笔记/备忘录乱写 | 地平线篇
    前言持续更新中!校内赛打完分到地平线组了,好多新东西,写篇笔记记录。比赛使用OriginBot车模,车模搭载Ubuntu系统。以后估计主要在Ubuntu虚拟机上工作。现在需要先学习ROS2和FoxGlove。一些很基础或者很好记的东西就不写了。常用网址比赛简介(场地、车模、规则等)FoxGlove教程Or......
  • 2024/1/27学习进度笔记
    1)NLP基本概念①NLP(NaturalLanguageProcessing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言,即将人的自然语言转换为计算机可以阅读的指令。②分词是NLP任务的一个起始,分词的好坏会影响整体模型的好坏。并且分词不一样,语义不一样。1.中国北京大......