Я хочу изменить алгоритм Прима, чтобы он мог найти максимальное связующее дерево, как это можно сделать
Алгоритм Прима не против отрицательных весов.
Просто переверните знак веса каждого ребра и используйте алгоритм минимального связующего дерева.
Поможет даже жадность до максимального края вместо минимального края.