P3372 模板 線段樹 1

2022-08-18 23:06:26 字數 905 閱讀 6549

題目的神奇傳送門

模板題呦,聽老師說第一遍打板子很難??可是我第一遍打完之後就改了乙個小地方就過了??emmmm可能是我太聰明了吧~~~

那不多bb,具體一點的解釋在**裡

#includeusing namespace std;

const int n=1000005;

#define ll long long

int n,m;

ll a[n],p[n];

void build(int k,int l,int r)

int mid=(l+r)/2;

build(k*2,l,mid);

build(k*2+1,mid+1,r);

a[k]=a[k*2]+a[k*2+1];//從下往上處理

}void add(int k,int l,int r,int lo,int ro,int q)//下面為有交集但無覆蓋

int mid=(l+r)/2;

if(p[k])

add(k*2,l,mid,lo,ro,q);//左右子樹

add(k*2+1,mid+1,r,lo,ro,q);

a[k]=a[k*2]+a[k*2+1];//從下到上處理

}ll getsum(int k,int l,int r,int lo,int ro)

int mid=(l+r)/2;

if(p[k])

return getsum(k*2,l,mid,lo,ro)+getsum(k*2+1,mid+1,r,lo,ro);//返回和值

}int main()

else

//for(int i=1;i<=2*n;i++)

//printf("\n");

} return 0;

}

白白

P3372 模板 線段樹 1

線段樹學習 這個題來看,線段樹分為建樹,更新,查詢。1.建樹 void build ll p,ll l,ll r ll mid l r 1 build lson p l,mid build rson p mid 1,r push up sum p void push up sum ll p 這段 的...

P3372 模板 線段樹 1

題 include includeusing namespace std typedef long long ll ll n,m,ans,x,y,op,val 因為下面有的函式需要用到x,y,val值,懶得傳參,故直接寫為全域性變數 const int n 100000 struct nodetre...

P3372 模板 線段樹 1

題目描述 如題,已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數加上x 2.求出某區間每乙個數的和 輸入輸出格式 輸入格式 第一行包含兩個整數n m,分別表示該數列數字的個數和操作的總個數。第二行包含n個用空格分隔的整數,其中第i個數字表示數列第i項的初始值。接下來m行每行包含3或4個整數...