区间赋值的时候考虑懒标记应该设什么初始值
容易想到应该设一个特殊值表示未进行赋值操作, push_down 函数如下:
inline void push_down(int index){
if(node[index].lazy == -1)
{
return;
}
node[2 * index].sum = (node[2 * index].r - node[2 * index].l + 1) * node[index].lazy;
node[2 * index].lazy = node[index].lazy;
node[2 * index + 1].sum = (node[2 * index + 1].r - node[2 * index + 1].l + 1) * node[index].lazy;
node[2 * index + 1].lazy = node[index].lazy;
node[index].lazy = -1;
return;
}