线段树单点更新思路代码

来源:互联网 发布:同学app软件下载 编辑:程序博客网 时间:2024/05/16 00:49
struct Tree
{
int left, right;
int max, sum;
};


void update(int id, int pos, int val)
{
if(tree[id].left == tree[id].right)
{
tree[id].sum = tree[id].max = val;
}
else
{
int mid = (tree[id].left == tree[id].right)/2;
if(pos <= mid)
update(id * 2, pos, val);
else
update(id * 2 + 1, pos, val);
tree[id].sum = tree[id * 2].sum + tree[id * 2 + 1].sum;
tree[id].max = max(tree[id * 2].max, tree[id * 2 + 1].max);
}
}
0 0
原创粉丝点击