题目描述:
主要思路:
将所有有向边抽象为无向边,将原有的方向权重置为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;
}
};