我们有N个水果和M个选择来选择那些水果.M行有一些整数,第一个是K,每个M行在第一个值(即K)之后跟随K个整数,表示水果的指数在那个选择中选择。 我需要找出可以选择的最大数量的选择。
注意: - 特定指数只有一个水果。
示例输入: -
4 3
2 1 2
2 2 3
2 3 4
输出: -
2
我们可以选择第一和第三选择。
我应该使用哪种算法来解决这个问题?
答案 0 :(得分:0)
这是最大独立集
的变体本文中有非常详细的算法来寻找最大独立集: Algorithms for Maximum independent Sets
此处提供了一种并行方法:Lecture Notes on a Parallel Algorithm for Generating a Maximal Independent Set
this是一个java实现。
答案 1 :(得分:0)
这是set packing problem,是经典NP完全问题之一。没有有效的解决方案,但您可以尝试回溯算法(慢但精确)或贪婪近似(快速但次优)。