如果你连样例都过不了且使用树剖+线段树区间赋值
查看原帖
如果你连样例都过不了且使用树剖+线段树区间赋值
1284582
F_L_Bird楼主2025/1/20 20:46

区间赋值的时候考虑懒标记应该设什么初始值

容易想到应该设一个特殊值表示未进行赋值操作, push_down\operatorname{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;
}
2025/1/20 20:46
加载中...