Я столкнулся с этой проблемой в конкурсе кодирования, который сводится к следующей проблеме:
Какое максимальное количество строк можно выбрать из двоичной матрицы, чтобы никакие две строки не имели столбца AND ненулевого значения? (Все пары для строк должны иметь столбец И ноль).
Ограничения: строки‹=50 , столбцы‹=20
Eg.
00101101
10110001
10000010
Ответ 2 (первая и третья строки).
Я мог предположить, что существует какой-то экспоненциальный алгоритм по количеству столбцов (из-за ограничений). Я просто не мог добраться до решения. Все мои другие попытки были слишком сложными с созданием графика и поиском независимого набора, и они также были экспоненциальными по количеству строк. Может ли кто-нибудь помочь мне с решением для этого?
Я пытался проверить код других участников после конкурса, они, похоже, решают его с помощью DP. Я не прошу полного решения. Буду признателен за подробные подсказки.
РЕДАКТИРОВАТЬ:
Если описание непонятно, выбранные строки не должны иметь общего в одном столбце (извините, если все еще непонятно). Как и в данном примере, первая и вторая строки не могут быть выбраны, потому что они есть в 3-м и 8-м столбцах. Точно так же 2-я и 3-я строки не могут быть выбраны, потому что они имеют общую в 1-м столбце. В 1-м и 3-м рядах НЕТ ОБЩЕГО.