Ir para conteúdo

k0walsk1

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre k0walsk1

  1. Pessoal, eu estou implementando o algoritmo de dijkstra para resolver um problema da olimpíada brasileira de informática, mas não consigo compilar o programa porque há um erro que não consigo entender porque está ocorrendo nas linhas 43, 44 e 45, que no caso é: error: invalid types 'int[int]' for array subscript Aqui está o código completo em C++11: #include <bits/stdc++.h> #define mkp make_pair using namespace std; const int MAXN = 1010, INF = 0x3f3f3f3f; int n, m, p[MAXN], dist[MAXN]; vector<pii> g[MAXN]; typedef pair<int, int> pii; void Dijkstra(int s){ memset(dist, INF, sizeof dist); dist[s] = 0; priority_queue< pii, vector<pii>, greater<pii> > fila; fila.push(mkp(dist[s], s)); while(true){ int davez = -1, menor = INF; while(!fila.empty()) { int atual = fila.top().second; fila.pop(); if (!p[atual]) { davez = atual; break; } } if (davez == -1) break; p[davez] = 1; for(int i = 0; i < (int) g[davez].size(); i++){ int dist = g[davez][i].first, atual = g[davez][i].second; if (dist[atual] > dist[davez] + dist) { dist[atual] = dist[davez] + dist; fila.push(mkp(dist[atual], atual)); } } } } int main(){ int u, v, b; scanf("%d %d", &n, &m); for(int i = 0; i < m; i++){ scanf("%d %d %d", &u, &v, &b); g[u].push_back(mkp(b, v)); } Dijkstra(0); printf("%d\n", dist[n+1]); }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.