कठिन 0 हल किए गए 0% स्वीकृति

Strongly Connected Components

Count groups of nodes that can all reach each other.

समस्या

In a directed graph with nodes 0..n−1, a strongly connected component is a maximal group of nodes where every node can reach every other. Count the components (Kosaraju's or Tarjan's algorithm).

Implement count_scc(n, edges).

Input

n: The number of nodes. edges: Directed edges as [from, to].

Output

Return the number of components.

सीमाएँ

1 ≤ n ≤ 100,000; 0 ≤ edges ≤ 200,000

उदाहरण

उदाहरण 1
इनपुट:
n = 5
edges = [
    [0, 1],
    [1, 2],
    [2, 0],
    [3, 4]
]

अपेक्षित आउटपुट:
expected = 3
इनपुट:
long long n = 5;
std::vector<std::vector<long long>> edges = {
    {0, 1},
    {1, 2},
    {2, 0},
    {3, 4}
};

अपेक्षित आउटपुट:
long long expected = 3;
इनपुट:
long n = 5;
long[][] edges = new long[][] {
    new long[] {0, 1},
    new long[] {1, 2},
    new long[] {2, 0},
    new long[] {3, 4}
};

अपेक्षित आउटपुट:
long expected = 3;

व्याख्या

0, 1, 2 form a cycle (one component); 3 and 4 can't reach each other, so they are separate: 3.

उदाहरण 2
इनपुट:
n = 3
edges = [
    [0, 1],
    [1, 0],
    [1, 2],
    [2, 1]
]

अपेक्षित आउटपुट:
expected = 1
इनपुट:
long long n = 3;
std::vector<std::vector<long long>> edges = {
    {0, 1},
    {1, 0},
    {1, 2},
    {2, 1}
};

अपेक्षित आउटपुट:
long long expected = 1;
इनपुट:
long n = 3;
long[][] edges = new long[][] {
    new long[] {0, 1},
    new long[] {1, 0},
    new long[] {1, 2},
    new long[] {2, 1}
};

अपेक्षित आउटपुट:
long expected = 1;

व्याख्या

All three nodes reach each other: 1.

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।