Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
k0walsk1

Erro no index de um array - c++ 11

Pergunta

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]);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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