Menu
CoddyTech

Strongly Connected Components

ZorGraflarpython iconjava iconcpp iconc iconjs icon+10

Yönlü bir grafın n düğümü vardır; düğümler 0 ile n-1 arasında numaralandırılmıştır ve edges listesinde, [from, to] bir düğümden from düğümüne, to düğümüne giden bir kenarı belirtir.

Güçlü bağlı bileşen, kenarları izleyerek her düğümün diğer tüm düğümlere ulaşabildiği en büyük düğüm grubudur. Her düğüm tam olarak bir bileşene aittir ve hiçbir döngüde bulunmayan bir düğüm tek başına bir bileşen oluşturur. Güçlü bağlı bileşenlerin sayısını döndürün.

Fonksiyon

countSCC(n: integer, edges: integer-2d-array) → integer
ninteger
düğüm sayısı
edgesinteger-2d-array
yönlü kenarlar, her biri [from, to] biçiminde
Döndürürinteger
kuvvetli bağlantılı bileşenlerin sayısı

Kısıtlar

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [from, to] olacak şekilde 0 ≤ from, to < n ve from ≠ to
  • Hiçbir kenar iki kez görünmez.

Örnekler

Girdi
n = 6edges = [[0, 1], [1, 2], [2, 0], [2, 3], [3, 4], [4, 3], [5, 4]]
Çıktı
3
Açıklama
0, 1 ve 2 düğümleri bir döngü oluşturur, bu nedenle birbirlerine ulaşırlar. 3 ve 4 düğümleri birbirlerini gösterir. 5 düğümü 4'e ulaşır, ancak 5'e geri dönen hiçbir şey yoktur; bu yüzden tek başına kalır: 3 bileşen.
challenge icon

Ek soru

Tüm grafiği tek bir güçlü bağlantılı bileşen hâline getirmek için en az kaç kenar eklemeniz gerekir?

Kodu sıfırla
def countSCC(n, edges):
    # Kodu buraya yazın

Test #1

Test #2

Argümanlar

n = 6
edges = [[0, 1], [1, 2], [2, 0], [2, 3], [3, 4], [4, 3], [5, 4]]

Beklenen Çıktı

3