Вопрос алгоритма: переворачивание столбцов

Предположим, что нам дана сетка размером m x n из нулей и единиц и мы хотим преобразовать сетку так, чтобы максимальное количество строк состояло только из единиц. Единственная операция, которую нам разрешено выполнять с сеткой, - это выбрать какой-либо столбец и перевернуть все нули и единицы в этом столбце. Нам также дано некоторое целое число k, и мы должны выполнить ровно k обращений столбцов. Учитывая сетку и значение k, как мы можем определить, какие столбцы нужно перевернуть, чтобы максимально увеличить количество строк, состоящих из единиц?

Я думаю, что нужно сделать что-то динамическое, но я не могу прийти к хорошему ответу. Может кто-нибудь помочь?

17
задан templatetypedef 19 August 2011 в 15:47
поделиться