首页 > 其他分享 >特大喜讯,我找到了让线段树常数小一个n的方法

特大喜讯,我找到了让线段树常数小一个n的方法

时间:2022-11-17 20:14:44浏览次数:51  
标签:rt int res 线段 tr mid 特大 喜讯 Find

麻麻再也不用担心我被卡常

//大常数写法
int Find(int rt,int l,int r,int s,int t){
		if(!tr[rt].maxi || !rt || t<s)return 0;
		if(l==r)return tr[rt].maxi;
		int mid=(l+r)>>1,res=0;
		if(s<=mid)res=Find(LCH,l,mid,s,t);
		if(t>mid)res=max(res,Find(RCH,mid+1,r,s,t));
		return res;
	}
//这样写常数小了一个n
int Find(int rt,int l,int r,int s,int t){
		if(!tr[rt].maxi || !rt || t<s)return 0;
		if(s<=l && t>=r)return tr[rt].maxi;
		int mid=(l+r)>>1,res=0;
		if(s<=mid)res=Find(LCH,l,mid,s,t);
		if(t>mid)res=max(res,Find(RCH,mid+1,r,s,t));
		return res;
	}

实践效果如下

image

标签:rt,int,res,线段,tr,mid,特大,喜讯,Find
From: https://www.cnblogs.com/Delov/p/16900614.html

相关文章

  • 可持久化线段树
    可持久化线段树可持久化数据结构总是可以保留每一个历史版本,并且支持操作的不可变特性部分可持久化所有版本都可以访问,但是只有最新版本可以修改完全可持久化所有版本......
  • 【XSY4829】鸽子的彩灯(线段树)
    大强说很套路,所以记一下。首先当前的电流就是剩下还未经过的点亮的灯的\(c_i\)之和。考虑一个暴力的做法:初始将所有询问的流量设为\(0\),从后往前扫过每一个彩灯\(i\)......
  • 可持久化线段树 学习笔记
    引入嗯嗯因为我打了一次测试所以学了这个可持久化线段树(怎么说其实这东西我很久之前学过,只是有点忘了深刻认识到了写博客的重要性啦!(>ω・*)ノ这东西其实很简单,也加强了......
  • 线段树维护区间历史版本和
    好久没写博客了,主要是这玩意网上有点难搜到,就干脆糊了一个另外区间加操作的题见这个博客给定长为\(n\)的01序列,\(m\)个询问,第\(i\)次认为产生一个新版本\(i\);要......
  • 20221111_T1B_线段树优化建图/并查集
    题意给定一个字符串,其中只有a和b,现在一个字符能够跳到与之中间a的个数范围在\([l,r]\)的东西。题解赛时得分:100/100对于一个东西,显然如果将能相互到达连边,那么......
  • 可持久化线段树
    可持久化线段树可持久化权值线段树·又叫主席树·本质就是多棵线段树·可持久化表示可以维护历史任一版本的数据·例题\(\quad\)·Q1:给定\(n\)个整数构成的......
  • 喜讯| 凡拓数创荣获亚太空间设计大奖赛金奖!
    喜讯|凡拓数创荣获亚太空间设计大奖赛金奖! 凡拓数创设计作品 『天安溧水未来生态城展厅』 项目荣获亚太地区建筑与设计领域重要奖项之一【2022·APSDA亚太空间设计大......
  • 2022-11-08 行情启动时的拐点,上下上形成了奔走中枢或者线段走势
    案例一:先看今天纳斯达克的一小段上涨1分钟的一段下上下走势引出的5分钟一笔上涨  案例2:EUR/USD 一开始的启动1.4h下跌终于出现最后一跌2.30分钟出现横盘整......
  • 线段树分裂
    #include<bits/stdc++.h>usingnamespacestd;constintmaxn=2e5+5;typedeflonglongll;structNode{intl,r;llval;}sgt[maxn*40];//?40......
  • P3834 【模板】可持久化线段树 2
    先用结构体实现了下,发现写错了(只有20分),后面直接用的数组了  #include<bits/stdc++.h>usingnamespacestd;constintN=2e5+7;inttl[N<<6],tr[N<<6],sum......