#pragma GCC optimize(3)
#include<bits/stdc++.h>
using namespace std;
const int maxn=2000001;
int n,a[maxn],m;
struct node {
int minn,lazy;//minn 维护的最小值,lazy 懒惰标记
} t[maxn<<2];
int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0')
{
x=x*10+ch-48;
ch=getchar();
}
return x*f;
}
inline int lc(int p) {//左孩子 l=2*p;
return p<<1;
}
inline int rc(int p) {//右孩子 l=2*p+1;
return p<<1|1;
}
inline void push_up(int p) {
t[p].minn=min(t[lc(p)].minn,t[rc(p)].minn);//维护父亲节点
}
inline void build(int p,int l,int r) {//建树
t[p].lazy=0;
if(l==r) {// 左孩子和右孩子相等,到达最低端,区间最小值就是a[l]
t[p].minn=a[l];
return ;
}
求m区间内的最小值
最新推荐文章于 2024-05-03 18:33:39 发布