Escolar Documentos
Profissional Documentos
Cultura Documentos
Exercicio Prim
Exercicio Prim
1)
Não é permitido numeros negativos no peso das arestas leve em consideração que alem de -3 seja 3;
Aplicando o algoritmo prim começando pelo vértice 1:
2)
3)
4)
5)
(precisa de zoom)
código escrito
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
int N, M;
int main(){
//montando grafo
vector< vector<pair<int,int>>>G(N);
//Lista de adjacência
for(int i = 0; i<M;i++){
int u,v,cost;
G[u].push_back({v, cost});
G[v].push_back({u, cost});
}
//fila prioridade com custo e nó associado
priority_queue<pair<int,int>> prim;
prim.push({-ed.second, ed.first});
int soma = 0;
while(prim.size()){
prim.pop();
// se a aresta me leva para um vertice ja visitado ignora
soma += -menor.first;
mark[menor.second] = true;
prim.push({-ed.second, ed.first});
cout <<soma<<endl;