Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 30.08.2022
Сообщений: 61

Реализация алгоритма Прима

01.01.2024, 17:41. Показов 447. Ответов 0
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно найти вес минимального остовного дерева связного графа, то есть реализация алгоритма Прима. Но мой код ловит WA на втором тесте. Я уже проверил кучу тестов и сложных и легких, но на все дает правильный ответ. Прошу помочь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
const int INF = 1000000000;
int main() {
    int n, m; cin >> n >> m;
    vector<vector<int>> g(n, vector<int>(n, INF)); // граф в виде матрицы смежности 
    vector<int> used(n, 0); //добавлена ли вершина в текущий миност
    vector<int> minw(n, INF); //вес минимального не добавленного ребра выходящего из вершины
    minw[0] = 0; //первой добавим 0-ую вершину
    vector<int> minr(n, -1); //номер конца минимального не добавленного ребра выходящего из вершины
    int a, b, wi;
    long long weight_minost = 0;
    for (int i = 0; i < m; i++) { //ввод графа
        cin >> a >> b >> wi;
        g[a - 1][b - 1] = wi;
        g[b - 1][a - 1] = wi;
    }
    for (int i = 0; i < n; i++) {
        int v = -1; //последняя добавленная вершина в текущий миност
        for (int j = 0; j < n; j++) { //находим минимальноее подходящее ребро
            if (used[j] == 0 && (v == -1 || minw[j] < minw[v])) {
                v = j;
            }
        }
        used[v] = 1; //добавляем эту вершину
        weight_minost += minw[v];
        for (int j = 0; j < n; j++) { //обновляем minw
            if (g[v][j] < minw[j]) {
                minw[j] = g[v][j];
            }
        }
    }
    cout << weight_minost << endl;
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.01.2024, 17:41
Ответы с готовыми решениями:

Реализация алгоритма Прима
Алгоритм Прима?кто может написать?

Реализация алгоритма
помогите пожалуйсто написать программу: 1. Реализовать алгоритм Insertion-Sort (сортировка вставками) и Merge-Sort (сортировка слиянием)...

Реализация алгоритма
Смотрите, есть функция для рисования сегмента круга: pieslice(int x, int y, int start, int end, int radius) - int start и int ende угол...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.01.2024, 17:41
Помогаю со студенческими работами здесь

Реализация А* алгоритма
Здравствуйте! Возникли проблемы с пониманием данной практической работы. Как реализовать этот алгоритм? Буду рад любой помощи. ...

Реализация алгоритма Йена на С++
помогите пожалуста реализовать алгоритм Йена есть алгоритм Дейкстры нужно его доделать до Йена#include&lt;iostream&gt; ...

Реализация циклического алгоритма
Помогите пожалуйста! Мне нужно написать несколько программ, но получается не всё. Может кого заинтересует одно из заданий. Заранее огромное...

Реализация LCS алгоритма на с++
Здравствуйте форумчане!! Помогите заблудшей душе.... Есть задачка , максимально быстрым способом найти наибольшую общую подстроку во...

Реализация циклического алгоритма
Помогите понять как реализовать алгоритм. Допустим после пары шагов алгоритма есть условный оператор, который проверяет какое-либо условие....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru