Asosiy tarkibga o‘tish

O‘rganish

Kirish
Qo‘llanma

Qo‘llanma · Dasturlash

bfs

Masalalar tez orada

Nazariya

BFS (kenglik bo‘yicha qidiruv) — boshlang‘ich uchdan qatlam-qatlam yuradi: avval masofasi 1 bo‘lganlar, keyin 2… Shuning uchun qirralar vazni bir xil bo‘lsa, eng qisqa yo‘lni beradi. O(V + E).

from collections import deque

dist = [-1] * n
dist[s] = 0
q = deque([s])
while q:
    v = q.popleft()
    for to in g[v]:
        if dist[to] == -1:
            dist[to] = dist[v] + 1
            q.append(to)

To‘rda (labirint)

for dr, dc in ((1, 0), (-1, 0), (0, 1), (0, -1)):
    nr, nc = r + dr, c + dc
    if 0 <= nr < R and 0 <= nc < C and grid[nr][nc] != "#" and dist[nr][nc] == -1:
        ...

Diqqat

  • Uchni navbatga qo‘shganda belgilang, olganda emas — aks holda bir uch ko‘p marta kiradi.
  • Bir nechta boshlang‘ich nuqta bo‘lsa (masalan, bir nechta olov manbai), hammasini birdan navbatga qo‘ying.

Bu mavzu bo‘yicha masalalar tez orada qo‘shiladi.

Shu mavzu kirgan kurslar

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna