Прежде всего, я констатирую, что я не прошу ни о каком коде или полных решениях. Опишу проблему:Минимальное остовное дерево с использованием алгоритма prim, не знаю, что не так
Вам предоставляется количество комнат в здании и количество коридоров между ними. Каждый коридор соединяет 2 комнаты и получает вес. Всегда можно добраться до любой комнаты. Вы должны уменьшить общий вес всех коридоров, удалив их, распечатав уменьшенный вес.
ли эти предположения правильные ?:
Здание представляет собой график, комнаты вершины, коридоры ребра, соединяющие их. Следовательно, это неориентированный связный граф.
Вы можете решить это, получив вес минимального остовного дерева графика, а затем выполнив полный вес минус вес MST - результат представляет собой сумму весов коридоров, которые можно удалить.
Я реализовал алгоритм Прима для MST и правильный результат для примера случая и для любых других случаев MST, что я нашел в Интернете. Тем не менее, сервер классификации все еще дает мне «неправильный ответ» без какой-либо другой информации. Я не знаю, что случилось. На входе не более 100 вершин и 5000 ребер, поэтому диапазоны не должны быть проблемой. Весы являются целыми числами < = 200. Я использую матрицу смежности для MTS. Пример входных данных:
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 в Интернете, которые я мог бы использовать, чтобы найти проблему?
- Есть ли другой способ решить эту проблему? Я бы с удовольствием попробовал что-нибудь с сервером сортировки.
Я совершенно не знаком с графиками, поэтому, возможно, что-то не хватает.
Спасибо за ответ. Я решил проблему !! Я нашел аналогичную проблему [** онлайн **] (http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1372) и заметил, что в их тестовом вводе один край был предоставлен более одного раза , с другим весом. Грейдер, вероятно, сделал то же самое, и мой алгоритм не был готов к этому - вот почему я получил неправильный ответ. – lcapkovic
Ах, несколько ребер между теми же двумя вершинами - это, конечно, нечто, с чем не справляется матрица смежности. –