关于95tps中pushup改动(我认为不需要改但是不改wa#2)
查看原帖
关于95tps中pushup改动(我认为不需要改但是不改wa#2)
251449
hfjh楼主2023/1/7 22:19

我认为第一种的pushup已经足够了,因为当tree[tree[u].ls].max_num==tree[tree[u].rs].max_num时候ls的id(救济粮编号)总是小于rs的,可以直接赋值成ls,但在第二个点过不了,求大佬解惑

这是tps95的pushup:

void pushup(int u){
if(tree[tree[u].ls].max_num>=tree[tree[u].rs].max_num){
		tree[u].max_num=tree[tree[u].ls].max_num;
		tree[u].max_id=tree[tree[u].ls].max_id;
	}else{
		tree[u].max_num=tree[tree[u].rs].max_num;
		tree[u].max_id=tree[tree[u].rs].max_id;
	}

这是tps100的pushup:

void pushup(int u){
if(tree[tree[u].ls].max_num>tree[tree[u].rs].max_num){
		tree[u].max_num=tree[tree[u].ls].max_num;
		tree[u].max_id=tree[tree[u].ls].max_id;
	}else if(tree[tree[u].ls].max_num<tree[tree[u].rs].max_num){
		tree[u].max_num=tree[tree[u].rs].max_num;
		tree[u].max_id=tree[tree[u].rs].max_id;
	}else if(tree[tree[u].ls].max_id<tree[tree[u].rs].max_id){
		tree[u].max_num=tree[tree[u].ls].max_num;
		tree[u].max_id=tree[tree[u].ls].max_id;
	}else{
		tree[u].max_num=tree[tree[u].rs].max_num;
		tree[u].max_id=tree[tree[u].rs].max_id;
	} 
}
2023/1/7 22:19
加载中...