1466. ルート変更

タイトル説明:

ここに画像の説明を挿入

主なアイデア:

すべての有向エッジを無向エッジとして抽象化し、元の方向の重みを 1 にリセットし、残りを 0 に設定します。
0 から始まるすべての都市を横断します (ans=重みの合計)。

class Solution {
    
    
public:
    vector<vector<int>> a,w;
    int ans=0;
    bool book[500010];
    void dfs(int x)
    {
    
    
        book[x]=1;
        for(int i=0;i<a[x].size();++i)
        {
    
    
            int nex=a[x][i],ww=w[x][i];
            if(!book[nex])
            {
    
    
                ans+=ww;
                dfs(nex);
            }
        }
    }
    int minReorder(int n, vector<vector<int>>& connections) {
    
    
        a.resize(n);
        w.resize(n);
        for(auto x:connections)
        {
    
    
            a[x[0]].push_back(x[1]);
            w[x[0]].push_back(1);
            a[x[1]].push_back(x[0]);
            w[x[1]].push_back(0);
        }
        dfs(0);
        return ans;
    }
};

おすすめ

転載: blog.csdn.net/weixin_54385104/article/details/132150531