У мене проблема з завданням Im заданий NxNматриця з тільки 1s і 0s. На кожному кроці i генерують випадкові 1 в ряд і стовпець цього 1 закривається. Мені потрібно знайти мінімальну кількість змін від 0 до 1, щоб бути впевненим, що кожен рядок зможе мати один 1. Наприклад
00
00
Мені потрібні 2 зміни
10
01
Or
000
110
000
Мені потрібно зробити 3 зміни
110
110
001
тому я можу вибрати перший або другий 1 у першому рядку. Перший або другий у другому ряду, депанджінг на першому ряду вибрав і 3-й у 3-му ряду.
Відповіді:
2 для відповіді № 1Розгляньте вашу проблему як двосторонній графік, де ми маємо робітників ліворуч, робочі місця праворуч, і краю, якщо працівник може виконати роботу.
Потім обчислити максимальну відповідність працівників робочим місцям (наприклад, з алгоритм Хопкрофта-Карпа)
Якщо відповідність має розмір x, то ми успішно з'єднали x працівників з x роботами. Потім нам потрібно витрачати гроші n-x, щоб навчити незрівнянних працівників виконувати неперевершені робочі місця.