线段树模板

xiaoxiao2021-02-28  104

#include <iostream> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #define maxn 199999 using namespace std; int num[maxn]; int segtree[maxn]; void plant(int node ,int l,int r) {     if(l==r){segtree[node]=num[r];}     int mid=(l+r)/2;     plant(node*2,l,mid);     plant(node*2+1,mid+1,r);     segtree[node]=max(segtree[node*2],segtree[node*2+1]); } int query(int node,int st,int end,int l,int r) {     if(end<r&&st>l)return -1;     if(end>=l&&st<=r)return segtree[node];     int mid=(st+end)/2;     int p=query(node*2,st,mid,l,r);     int q=query(node*2+1,mid+1,end,l,r);     return max(p,q); } void update(int node,int st,int end,int ind,int up) {     if(st==end){segtree[node]=up;return;}     int mid=(st+end)/2;     if(mid>ind)     {         update(node*2+1,mid+1,end,ind,up);     }     else     {         update(node*2,st,mid,ind,up);     }     segtree[node]=max(segtree[node*2],segtree[node*2+1]);

}

int main

{

return 0;

{

转载请注明原文地址: https://www.6miu.com/read-69007.html

最新回复(0)