0Pricing
Competitive Programming Academy · Ders

Tüm Çiftler için Floyd-Warshall

Her çift arasındaki en kısa yolları bulun.

Tüm Çiftler için Floyd-Warshall, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

Tüm Çiftler Bir Arada

Bazen yalnızca bir kaynaktan değil, her düğüm çifti arasındaki en kısa yolu bulmanız gerekir. Bu, tüm çiftler problemidir.

Floyd-Warshall ile Tanışın

Floyd-Warshall, üç düzenli iç içe döngüyle ve neredeyse hiç hazırlık yapmadan tüm çiftler için eksiksiz bir uzaklık tablosu oluşturur.

Uzaklık Matrisi

dist[i][j] değerinin i'den j'ye bilinen en iyi maliyeti gösterdiği bir matris kullanın. Matrisi size verilen doğrudan kenarlardan oluşturun.

dist = [[INF] * n for _ in range(n)]

Köşegeni Ayarlayın

Her düğüm kendisine ücretsiz ulaşabildiğinden, gevşetmeye başlamadan önce köşegen üzerindeki dist[i][i] değerini sıfıra ayarlayın.

for i in range(n):
    dist[i][i] = 0

Ara Düğüm Fikri

Teknik şudur: yolların bir ara düğüm k üzerinden geçmesine izin verin, ardından k üzerinden gitmenin doğrudan gitmekten ucuz olup olmadığını kontrol edin.

Döngü Sırası Önemlidir

Dış döngü k'dır; seçilen orta noktayı bu temsil eder. İçteki i ve j döngüleri, her çifti bu orta noktaya göre dener.

for k in range(n):
  for i in range(n):
    for j in range(n):

Gevşetme Adımı

Her çift için k üzerinden gevşetin: i'den k'ye, ardından j'ye gitmek daha kısaysa dist[i][j] değerini bu birleşik maliyetle güncelleyin.

if dist[i][k] + dist[k][j] < dist[i][j]:
    dist[i][j] = dist[i][k] + dist[k][j]

k Neden Dışarıda

k tamamlandığında tüm çiftler k'ye kadar olan ara düğümleri kullanabilir. k'yı en dışa koymak bu garantinin doğru kalmasını sağlar.

Negatif Kenarlar Sorun Değildir

Floyd-Warshall negatif kenarları kabul eder, ancak negatif döngüleri kabul etmez. Negatif bir döngü, bazı köşegen girdilerini sıfırın altına indirir.

Çalışma Süresi

n düğüm üzerinde üç döngü O(n^3) zaman ve O(n^2) bellek alanı gerektirir; bu yöntem yalnızca n birkaç yüzü geçmediğinde uygulanabilirdir.

Ne Zaman Seçilmeli

Graf küçük ve yoğunsa ve tek bir kaynaktan değil gerçekten her düğüm çifti arasındaki uzaklığa ihtiyacınız varsa Floyd-Warshall'ı seçin.

Hızlı Kontrol

Floyd-Warshall'da hangi döngü en dışta olmalıdır?

Özet: Floyd-Warshall

Bir matris başlatın, köşegeni sıfırlayın, ardından k, i, j sırasıyla döngü kurup k üzerinden gevşetin. O(n^3) sürede tüm çiftler arasındaki en kısa yolları bulun. 🧮

Sıkça Sorulan Sorular

“Tüm Çiftler için Floyd-Warshall” dersi ücretsiz mi?

Evet — “Tüm Çiftler için Floyd-Warshall” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

“Tüm Çiftler için Floyd-Warshall” dersinde ne öğreneceğim?

Her çift arasındaki en kısa yolları bulun. Competitive Programming Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Tüm Çiftler için Floyd-Warshall” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Competitive Programming Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yığınla Dijkstra
  2. Deque ile 0-1 BFS
  3. Bellman-Ford ve Negatif Kenarlar
  4. Tüm Çiftler için Floyd-Warshall
← Competitive Programming Academy Sayfasına Dön