想了半天 這個和線段樹什麼關係!!!
最後發現我就是豬豬
害就是個板子題
把每乙個葉子節點的值賦值為1
如果第m個是1 n 就把m這個點的值變為n
如果是2 n 就把n點的值變為1
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#if __cplusplus >= 201103l
#include
#include
#endif
#define ll long long
#define int long long
using
namespace std;
const
int inf =
0x3f3f3f3f
;int q,mod;
struct suttree[
400010];
void
build
(int l1,
int r1,
int x)
int mid=
(l1+r1)
>>1;
build
(l1,mid,x<<1)
;build
(mid+
1,r1,x<<1|
1); tree[x]
.sum=tree[x<<1]
.sum*tree[x<<1|
1].sum;
}void
update
(int l1,
int r1,
int pos,
int val,
int x)
int mid=
(l1+r1)
>>1;
if(mid>=pos)
update
(l1,mid,pos,val,x<<1)
;else
update
(mid+
1,r1,pos,val,x<<1|
1); tree[x]
.sum=
(tree[x<<1]
.sum*tree[x<<1|
1].sum)
%mod;
}int a[
100010];
signed
main()
else}}
return0;
}
線段樹單點修改區間查詢
這是一道模板題。給定數列 a 1 a 2 a n 你需要依次進行 qq 個操作,操作有兩類 1 i x 給定 i,x,將 a i 加上 x 2 l r 給定 l,r,求 ri la i 的值 換言之,求 a l a l 1 a r 的值 input 第一行包含 2 個正整數 n,q,表示數列長度和詢...
線段樹模板(單點修改 區間查詢)
1547 例 1 區間和 時間限制 1000 ms 記憶體限制 524288 kb 提交數 2072 通過數 639 題目描述 給定一數列,規定有兩種操作,一是修改某個元素,二是求區間的連續和。輸入 輸入資料第一行包含兩個正整數n,m n 100000,m 500000 以下是m行,每行有三個正整數...
I Hate It 線段樹 單點修改 區間查詢
time limit 9000 3000 ms j a others memory limit 32768 32768 k j a others total submission s 40034 accepted submission s 15898 很多學校流行一種比較的習慣。老師們很喜歡詢問,從...