hdu 2852 線段樹 單點更新

2021-07-12 01:59:10 字數 697 閱讀 7211

主要是查詢的時候 本來時間就比較緊 查詢的時候直接暴力二分求答案 超時

看了下別人** 主要是find的時候要直接find速度快了很多

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

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

const int n=100000;

using namespace std;

int sum[n<<3],ans,n,op,l,r,m,k,mid;

void pushup(int rt)

void update(int p,int add,int l,int r,int rt)

int mid=(l+r)/2;

if(p<=mid) update(p,add,lson);

else update(p,add,rson);

pushup(rt);

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

int find_rt(int t,int l,int r,int rt)

return find_rt(t,lson);

}int main()

else if(op==1)

else if(op==2)}}

return 0;

}

hdu 2852 樹狀陣列

在基礎上加了二分查詢 include include include using namespace std define m 100005 int n,a m int flage int lowbit int i void update int i,int val int sum int i re...

hdu 2852 樹狀陣列

擦 這題 絕逼 坑人 一波n折。touch me 我一開始 用了最簡單 最sb的 一維hash陣列 來做 我看時間2000ms最大數才10w 還以為能過的 果斷tle了 然後 就覺得應該用更高效的資料結構來做了 我去問下了下porker 他一開始和我提了下 splay 不會啊 然後 說 樹狀陣列 查...

線段樹單點更新hdu1166

學習自 先序建子樹,然後回溯建立父節點 更新時先遞迴更新子節點,然後再回溯更新父節點 回溯思想很重要 include using namespace std const int maxn 50005 int sum maxn 2 void build int l,int r,int rt void ...