40pts警示后人
  • 板块P1471 方差
  • 楼主cloudemakers
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/16 15:56
  • 上次更新2024/8/8 09:43:58
查看原帖
40pts警示后人
550074
cloudemakers楼主2023/7/16 15:56

其它代码略 本人40分代码 (指pushdown函数) :

void pushdown(int l,int r,int u,int mode){
	int mid=(l+r)>>1;
	if (mode==1){
		maketag(u<<1,mid-l+1,tag[u],1);
		maketag((u<<1)+1,r-mid,tag[u],1);
		tag[u]=0;	
	}
	else if(mode==2){
		maketag(u<<1,mid-l+1,tag2[u],2);
		maketag((u<<1)+1,r-mid,tag2[u],2);
		tag2[u]=0;
	} 
}

这里我是分开下传的 然而平方和的更改是依赖于原来的区间和这个数据的,又因为要传就要一起传,所以不能分开并且平方和的要在区间和的之前操作

AC代码:

void pushdown(int l,int r,int u,int mode){
	int mid=(l+r)>>1;
	maketag(u<<1,mid-l+1,tag2[u],2);
	maketag((u<<1)+1,r-mid,tag2[u],2);
	tag2[u]=0;	
	maketag(u<<1,mid-l+1,tag[u],1);
	maketag((u<<1)+1,r-mid,tag[u],1);
	tag[u]=0;	
}
2023/7/16 15:56
加载中...