Максимальное весовое биопартное сопоставление
Вопрос
У меня есть график в форме прямоугольной сетки, то есть n узлов и 2 н края, все смежные узлы соединены. Это означает, что это двухцветно, и, следовательно, на него можно делать двусторонние сопоставления.
Каждый (непрашенный) край имеет вес, назначенный ему - либо -2, -1, 0, 1 или 2. Никакие другие значения не допускаются
Как бы я пошел по нахождению сопоставления на этом графике, который максимизирует сумму весов в соответствии с сопоставлением? Псевдокод был бы хорошим, не беспокойтесь со специфическими языками.
В идеале я ищу алгоритм, который проходит в квадратичном времени - возможно o (n ^ 2 log n) в худшем случае.
Прежде чем предлагать решение, я попытался сделать максимальный сопоставление, используя края веса 2, то весом 1 (не переходя по краям веса 2). Я забил 98% с этой реализацией (проблема со стороны информатики Олимпиада), и удивляясь, что такое 100% раствор.
Решение
Не уверен, почему вы думаете о мин. Разрез не гарантированно даст вам соответствие в этом случае. Что вам нужно сделать, это решить проблему присваивания.Проблема назначения. Отказ Последовательный кратчайший алгоритм математики решает его в O (EV Log V), который в вашем случае является O (N ^ 2 log n).