Есть задачка, к линуксу напрямую отношения не имеет, но наверняка может быть быть решена на компьютере.
Есть 2 списка по 100 ячеек. В ячейке может быть объект, а может не быть ничего. Есть функция f(S1(i), S2(i)), где S1(i), S2(i) - соответственно объект из 1го и 2го списка с одинаковым индексом.
Если одна из двух ячеек пуста, f()=0, если S1(i) == S2(i), f()=0. Во всех остальных случях - некоторое неотрицательное значение
Нужно найти такую последовательность перестановок элементов в списках, чтобы за наименьшее количество шагов уменьшить сумму f(S1(i), S2(i)) i:=1..100 на наибольшее возможное значение.
Или другими словами переставить элементы так, чтобы в соответствующих ячейках двух списков были либо одинаковые элементы, либо в одном элемент, в другом ничего. Чем меньше индексов по которым располагаются разные элементы или чем более они похожи, тем лучше.
Пустых ячеек примерно 10% от длины списков. Из одного списка в другой переносить нельзя.
Может встречались какие-нибудь похожие задачи? С какой стороны или каким методом можно подойти?
Ответ на:
комментарий
от nerdogeek
Ответ на:
комментарий
от invy
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Решение задачи посредством two pointer technique (2019)
- Форум [разминка для ума] кривой рандом (2011)
- Форум Теор.вер. разминка (2007)
- Форум Разминка для глаз (2016)
- Форум Разминка для мозга (2015)
- Форум Разминка для мозга (2014)
- Форум Задачка для разминки (2017)
- Форум Пятничная разминка для мозгов (2019)
- Форум задачка для небольшой разминки (2018)
- Форум Ум (2012)