- 博客(3)
- 收藏
- 关注
原创 一维/二维树状数组的各种用法
树状数组 一维树状数组 用法一:单点修改,区间查询 单点修改:add(bit,x,v) 区间查询:query(bit,r)-query(bit,l-1) 用法二:区间修改,单点查询 区间修改:add(bit,l,v),add(bit,r+1,-v) 单点查询:query(bit,x) int limit;//树状数组下标的上界 void add(ll *bit,int x,ll v){ while(x<=limit)bit[x]+=v,x+=x&-x; } ll query(ll *bit,
2021-03-09 14:43:01 151
原创 二次离线莫队算法
二次离线莫队算法可以计算区间中满足某种条件的点对的数量,例如P5047 题意:给定一个长度为n的序列 m次查询 求区间[L,R]中逆序对的数量 分析:如果直接用普通莫队做这道题的话,每次移动都要在树状数组上修改和查询,复杂度为 O(nnlogn)O(n\sqrt{n}logn)O(nnlogn) 记 ([l1,r1],[l2,r2])([l1,r1],[l2,r2])([l1,r1],[l2,r2]) 表示一个点在 [l1,r1][l1,r1][l1,r1] 中另外一点在 [l2,r2][l2,r2][l
2021-03-08 01:14:33 951
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人