Был алгоритм размещения королев в местах прав на шахматной доске, и было правило, что они не должны угрожать друг другу.Ваша проблема выглядит так для меня.Вы можете создать рекурсивную структуру, как показано ниже:
Найдите первые строки, которые соответствуют требованиям: В вашем примере P и Q (потому что 6 + 6> 10) Итак, вы обработали первый столбец, затем перейдите ко второму и проверьтеесли вместимость корзин P и Q может соответствовать требованию: в вашем случае они не соответствуют (потому что 4 + 4 <10) </p>
Здесь вернитесь к первому шагу (вызовите ту же рекурсивную функцию для первого столбца).увеличив указатель, который раньше показывал B) и найдите вторые строки, которые соответствуют требованиям.P и R для вашего примера.(6 + 4 = 10) Затем выполните второй шаг для P и R.
Таким образом, идея состоит в том, чтобы в каждом столбце найти корзины, которые соответствуют требованию, а затем перейти ко второму столбцу.Если вы можете найти строки, которые соответствуют требованиям, перейдите к 3. Если вы не можете найти строки на 3-м шаге, вернитесь к 2-му шагу и снова, если ни одна из комбинаций строк, выбранных вами на 2-м шаге, не удовлетворяет требованиям, чем перейти ксначала и повторяем.
Я не мог бы дать вам псевдокод правильно, но я думаю, что основная идея ясна и не так сложна для реализации.