请求加强数据
查看原帖
请求加强数据
583186
2c_s楼主2024/10/20 21:08

rt,我使用如下的线段树上二分代码,样例都没过,能 AC。。。old record

int query(int i,ll tim,ll hp){
	if(tr[i].l==tr[i].r)return 0;
	pushdown(i);
	int mid=tr[i].l+tr[i].r>>1;
	if(tr[i].sum*tim<=hp)return tr[i].len;//注意这行。
	else{
		if(tr[i<<1].sum*tim>=hp)return query(i<<1,tim,hp);
		else return tr[i<<1].len+query(i<<1|1,tim,hp-tr[i<<1].sum*tim);
	}
}

然后我去掉代码中标记的这一行(如下),样例通过,并且 AC 此题。new record

int query(int i,ll tim,ll hp){
	if(tr[i].l==tr[i].r)return 0;
	pushdown(i);
	int mid=tr[i].l+tr[i].r>>1;
	if(tr[i<<1].sum*tim>=hp)return query(i<<1,tim,hp);
	else return tr[i<<1].len+query(i<<1|1,tim,hp-tr[i<<1].sum*tim);
}

因此,请求加强数据。

2024/10/20 21:08
加载中...