我有 N 组值,例如。
- S1 = {A,B,C,D,E}
- S2 = {A,B,C,D,E,F}
- S3 = {A,B}
- S4 = {C,E,F,G,H}
我想知道每组集合中是否有不同或独特的价值......即。是否存在通过集合的“路径”,在每个集合中至少留下一个值,而不是在任何其他集合中。上面示例的答案将是 TRUE,因为您可能有:B 来自 S1,D 来自 S2,A 来自S3 和 S4 中的 C
一个错误的例子是:
- S1 = {A,B,C}
- S2 = {A}
- S3 = {A,B}
- S4 = {A,C}
因为值需要在集合之间复制。
与往常一样,我确信这个问题必须有一个简单的解决方案。任何帮助将不胜感激。谢谢
澄清
感谢到目前为止的答案,但我仍然对此感到有些困惑,尽管有什么(我认为)是一个简单的要求。我怀疑我让这个问题听起来比它实际代表的问题更令人困惑。
为了澄清,我的最终目标是:
- 每组有一个值。
- 这个新值列表应该彼此不同。
- 从每组中选取的值是相对任意的。
- 如果无法从输入集中导出单个不同的值,则该过程不应返回任何内容
我已经阅读了二分图和最大流量,但我看不到“树上的木头”最终我需要在 .NET 中编写一些代码来实现这一点,所以一些伪代码将是一个非常大的帮助,如果那是不可能的只是一个简单的相关算法的例子就很好了。