線段樹,區間更新 尤拉函式

2021-07-23 06:26:23 字數 1056 閱讀 3275

區間更新,學會了一種 新的更新姿勢。

hdu 5634 

操作1,給定區間,在區間內的 每個單點,按照函式變換

操作2,區間更新,修個整個區間內所有的值

操作3,求和

#include #include #include #include #include #define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define ll rt<<1

#define rr rt<<1|1

using namespace std;

typedef long long ll;

const int maxn=300001;

const int maxm=1e7+1;

long long ph[maxm];

//打表尤拉

void eor()

void update1(int l,int r,int rt)

pushdown(rt);

int m=(tree[rt].l+tree[rt].r)>>1;

if(r <= m) update1(l,r,ll);

else if(l > m) update1(l,r,rr);

else

pushup(rt);

}void update2(int l,int r,int neww,int rt)

pushdown(rt);

int m=(tree[rt].l+tree[rt].r)>>1;

if(r <= m) update2(l,r,neww,ll);

else if(l > m) update2(l,r,neww,rr);

else

pushup(rt);

}long long query(int l,int r,int rt)

int main()

else if(tp==3) printf("%lld\n",query(l,r,1));

} }return 0;

}

尤拉函式 線段樹 奇數國

問題 b 奇數國 時間限制 1 sec 記憶體限制 256 mb 提交 82 解決 44 提交 狀態 討論版 題目描述 在一片美麗的大陸上有100000個國家,記為1到100000。這裡經濟發達,有數不盡的賬房,並且每個國家有乙個銀行。某大公司的領袖在這100000個銀行開戶時都存了3大洋,他惜財如...

線段樹區間更新

在此我們之前學習了線段樹的單點更新 點我 但是現在我們遇到乙個這樣的問題 給出乙個n個元素的陣列a1,a2,an。我們總共進行m次操作。每次操作為下列兩種操作其中一種 1 add l,r,v 將a l a l 1 a r 的值全部增加v。2 query l,r 計算子串行a l a l 1 a r ...

線段樹(區間更新求和)

poj 3468 include using namespace std define max 100100 struct node 求區間長度 int get dis node tree max 3 long long d max 建樹 long long build int left,int r...