Во-первых, я заявляю, что не прошу никакого кода или полных решений. Я опишу проблему:
Вам дано количество комнат в здании и количество коридоров между ними. Каждый коридор соединяет 2 комнаты и имеет вес. Всегда есть возможность попасть в любое помещение. Вы должны уменьшить общий вес всех коридоров, удалив их и распечатав уменьшенный вес.
Верны ли эти предположения?
Здание — граф, комнаты — вершины, коридоры — соединяющие их ребра. Следовательно, это неориентированный связный граф.
Вы можете решить эту проблему, получив вес минимального остовного дерева графа, а затем вычислив полный вес минус вес MST - в результате получится сумма весов коридоров, которые можно удалить.
Я применил алгоритм Прима для MST, и результат правильный для примера и для любых других случаев MST, которые я нашел в Интернете. Однако сервер оценок по-прежнему дает мне «неправильный ответ» без какой-либо другой информации. Я не знаю, что случилось. Во входных данных не более 100 вершин и 5000 ребер, поэтому диапазоны не должны быть проблемой. Веса представляют собой целые числа ‹=200. Я использую матрицу смежности для МТС. Пример ввода:
5 7
1 2 50
2 3 40
3 4 20
4 5 10
1 4 40
3 5 30
В этом случае программа напечатает 80. Полный вес равен 190, минимальный вес равен 110, поэтому мы можем удалить 190 - 110 = 80.
Мои вопросы:
- Есть ли очевидные ошибки, которые приходят вам на ум? На что следует обратить внимание, почему это работает для ввода примера и т. Д.
- Есть ли в Интернете тестовые случаи для MST среднего размера, которые я мог бы использовать для поиска проблемы?
- Есть ли другой способ решить эту проблему? Я бы с удовольствием попробовал что-нибудь с сервером оценок.
Я совершенно новичок в графиках, поэтому я могу что-то упустить.