Блог пользователя CEKPET

Автор CEKPET, история, 13 дней назад, По-русски

Привет!

Сегодня решая эту задачу, я быстро написал код на bfs но почему-то он не работает. А в то время как dfs справляется очень даже неплохо.

Вот код на bfs: 259611368

Вот код на dfs: 259613476

Кто нибудь может объяснить что я делаю не так?

Теги dfs, bfs
  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

»
13 дней назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
      auto &[u, cnt] = q.front();
      q.pop();
      for (auto i : g[u])

Присваиваешь u и cnt по ссылке, потом удаляешь их из очереди а затем снова используешь. Точно не знаю что там на деле происходит (вероятно, они просто чем-то сверху перезаписываются потом и все ломается), но делать так не стоит. С auto [u, cnt] = q.front(); все работает.