Как найти неидентичные элементы из нескольких векторов?

Дано несколько векторов / наборов, каждый из которых содержит несколько целых чисел, которые различны в пределах одного вектора. Теперь я хочу проверить, существует ли набор, который составлен путем извлечения только одного элемента из каждого заданных векторов / наборов, при этом извлеченные числа неидентичны. друг от друга.

Например, даны наборы a, b, c, d как:

a <- (1,3,5); 
b <- (3,6,8); 
c <- (2,3,4); 
d <- (2,4,6)

Я могу найти такие наборы, как (1, 8, 4, 6) или (3, 6, 2, 4) ..... на самом деле мне нужно найти только один такой набор, чтобы доказать существование.

применяя грубый силовой поиск, можно проверить максимальное количество комбинаций m ^ k, где m - размер заданных наборов, k - количество заданных наборов.

Есть ли способы поумнее? Спасибо!

16
задан ThinkingStiff 16 March 2013 в 06:56
поделиться