Цитата(ned @ 21:12:2005, 16:45 )
Помогите кто сможет написать прогу на с++.
Задача следующего содержания: Вася положил на стол N выпуклых K-гранников и N различных типов наклеек, каждой по K штук . Кто-то наклеил наклейки на грани, по одной на грань. Расставить многогранники так, чтобы наклейка каждого типа была видна pовно K-1 раз.
Всем откликнувшимся респект и уважуха, и естественно вознаграждение. Заранее спасибо.
Переформулируем задачу.
...Расставить многогранники таким образом, чтобы все многогранники стояли на гранях с наклейками различных типов.
Построим двудольный граф. Первая доля графа - многогранники, вторая - типы наклеек. Если на многогранник i наклеена наклейка типа j, то строим ребро между вершиной i первой доли и вершиной j второй доли графа.
Теперь находим совершенное паросочетание в построенном двудольном графе. То есть паросочетание мощности N. Его ребра и будут являться ответом задачи.
Построение максимального паросочетания в двудольном графе задача стандартная и избитая, так что google в руки.