如果你30pds WAon134怎么都过不去
查看原帖
如果你30pds WAon134怎么都过不去
995117
pineappler楼主2024/7/20 10:10

首先查看是否出现这篇帖子提到的问题

其次,乘法标记下传的时候要同时讲子节点的加法标记乘以同样的值

void pushdown(long long u){
	sum[ls]=(sum[ls]*mul[u])%MOD;
	sum[rs]=(sum[rs]*mul[u])%MOD;
	mul[ls]=(mul[ls]*mul[u])%MOD;
	mul[rs]=(mul[rs]*mul[u])%MOD;
  	//下面这两句很重要
	add[ls]=(add[ls]*mul[u])%MOD;
	add[rs]=(add[rs]*mul[u])%MOD;
	
	sum[ls]=(sum[ls]+add[u]*len[ls])%MOD;
	sum[rs]=(sum[rs]+add[u]*len[rs])%MOD;
	add[ls]=(add[ls]+add[u])%MOD;
	add[rs]=(add[rs]+add[u])%MOD;
	add[u]=0;
	mul[u]=1;
}
2024/7/20 10:10
加载中...