求一个复杂度较优秀的std:set合并算法
  • 板块学术版
  • 楼主Exp10re
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/7/11 21:11
  • 上次更新2023/11/3 10:26:49
查看原帖
求一个复杂度较优秀的std:set合并算法
403069
Exp10re楼主2023/7/11 21:11

rt.

写P7212的时候被set合并卡炸了。

以下是我所使用的set合并算法:

void cnnt_merge(long long ta,long long tb)
{
	for(set<long long>::iterator it=cnnt[ta].begin();it!=cnnt[ta].end();it++)
	{
		if(ffind(*it)!=tb)
		{
			cnnt[tb].insert(*it);
		}
	}
	for(set<long long>::iterator it=cnnt[tb].begin();it!=cnnt[tb].end();)
	{
		if(ffind(*it)==tb)
		{
			cnnt[tb].erase(it++);
		}
		else
		{
			it++;
		}
	}
//	cnnt[ta].clear();
	return;
}

求问一下这个set合并算法是否为最优解,如果不是,有没有什么好的优化方法(比如卡常什么的

谢谢了。

2023/7/11 21:11
加载中...