#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<vector>
#include<cmath>
#define INF 0x3f3f3f3f
#define EXP 0.00000001
#define MOD 1000000007
#define MAXN 100005
#define ltree 2*id,ll,mid
#define rtree 2*id+1,mid+1,rr
#define FO(i,n,m) for(int i=n;i<=m;++i)
#define mem(a) memset(a,0,sizeof(a))
typedef long long LL;
using namespace std;
void Pushup(int id) //把左右
{
}
void Pushdown(int id)
{
}
void Build(int id,int ll,int rr)
{
if(ll==rr)
{
return;
}
int mid=(ll+rr)/2;
Build(ltree);
Build(rtree);
Pushup(id);
}
void Update(int id,int ll,int rr,int x,int y ) //后面加变换条件
{
if(x<=ll&&rr<=y)
{
//修改
return;
}
Pushdown();
int mid=(ll+rr)/2;
if(y<=mid)
Update(ltree,x,y );
else if(x>mid)
Update(rtree,x,y );
else
{
Update(ltree,x,y );
Update(rtree,x,y );
}
Pushup();
}
int Query(int id,int ll,int rr,int x,int y)
{
if(x<=ll&&rr<=y)
{
return ;//返回需要的值
}
Pushdown();
int mid=(ll+rr)/2;
if(y<=mid)
return Query(ltree,x,y);
else if(x>mid)
return Query(rtree,x,y);
else
{
int a=Query(ltree,x,y);
int b=Query(rtree,x,y);
//a,b之间进行一波骚操作
}
}
int main()
{
return 0;
}
线段树板子
最新推荐文章于 2022-04-06 14:33:00 发布