进食后人 【WA#10#11】
查看原帖
进食后人 【WA#10#11】
555833
haozexu楼主2024/9/2 17:01

若您使用 multiset 启发式合并,那么不能直接在原来的set中删除然后插入。

正确代码 AC

void Join(multiset<int> x,multiset<int> &y){
	if(x.size()>y.size()) x.swap(y);
	multiset<int> res;
	for(auto it=x.rbegin();it!=x.rend();it++){
		auto i=y.end();i--;
		int t=(max(*it,*i));
		res.insert(t),y.erase(i);
	}
	for(int i:res) y.insert(i);
}

错误代码 WA #10 #11

void Join(multiset<int> x,multiset<int> &y){
	if(x.size()>y.size()) x.swap(y);
	auto i=y.end();i--;
	for(auto it=x.rbegin();it!=x.rend();it++,i--){
		int res=(max(*it,*i));
		y.erase(i),i=y.insert(res);
	}
}

(楼下古老帖子的楼主好像也是这个问题,可惜也许已经AFO了)

2024/9/2 17:01
加载中...