假设我有以下一组集合:
第一组
s1 = ( x1, y1 )
s2 = ( x2 )
第二组
m1 = ( x1, y1, y2 )
m2 = ( x1 )
m3 = ( x1 , x2 )
对于“Group 1”中的每个集合(称为“s”),我需要查找“Group 2”中的集合(称为“m”),使得“m”是“s”的子集。对于我的示例,答案将是:
s1 -> m2
s2 -> nothing
目前,我将值存储在std:set
中,但如果需要,我可以更改。另外,集合可能会很大,因此算法需要高效。目前,我采用了一种暴力方法,但我并不完全满意。
有什么建议吗?