Re: Найти покpытие столбцов стpоками
- From
- Rustam Ramazanov ()
- To
- Eugeny Tertishny
- Date
- 2002-10-23T14:48:32Z
- Area
- RU.ALGORITHMS
From: Rustam Ramazanov <ramazanoff@univer.kharkov.ua>
Привет!
ET> Есть матpица 16х14, несимметpичная. Заполненная
ET> нyлями и единицами. Необходимо
ET> найти минимальное количество стpок, таких чтобы
ET> хоть в одном столбце была 1.
ET> Считается, что такие стpоки в любом слyчае есть
Упрощает жизнь, но не является решающим фактором.
ET> Хочется сделать не использyя пеp**оp.
А чем перебор плох? К тому же все перебирать не надо.
Можно сделать следующее:
1. Берем строку в которой максимальное число единиц.
Запомним столбцы в которых стоят единицы.
2. В оставшихся строках в запомненных столбцах ставим 0.
3. Переходим в п.1. Работа алгоритма заканчивается либо если во всех
строках остаются только нули, либо если перебрали все строки (это тот
самый худший вариант).
Реализовать можно как рекурсивно, так и итерациями.
От размера матрицы ничего не зависит.
Если на каждой итерации запоминать кол-во единиц в выбранных строках,
то можно проверить, заполняются ли все столбцы единицами или нет.
К сожалению я не могу строго доказать, что получим именно минимальное
число строк, но кажется, что это так и будет.
Рустам.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.ru (2:5020/400)