这是某种类型的蛮力算法可以解决的问题,但是我想知道是否存在一些有效的方法。
假设我们有以下整数对
(1, 3), (2, 5), (4, 7), (2, 7), (10, 9)
我们想找出什么是互斥对的最大数量。
互斥对是指没有任何共同整数的对。
例如,我们不能同时选择(2,5),(2,7),因为两个对都包含2。
在上述情况下,4是一个解决方案,因为我们可以选择以下互斥对:
(1, 3), (2, 5), (4, 7), (10, 9)
因此,总共有4个最大对。
我想知道是否有有效的方法。
您的问题等同于在图形上找到最大匹配。图的节点是整数,而对(a,b)是图的边。匹配是一组成对的非相邻边,等同于说同一整数不在两个边中出现。
解决此问题的多项式时间解决方案是Blossom算法,也称为Edmond算法。将细节包含在此处的答案中太复杂了。