0
私は無向グラフ(グラフが切断されている可能性があります)を持っています。 特定のノードの到達不能ノードの数を見つける必要があります。グラフ - 深さの最初の検索を使用して、無向グラフの到達不能ノードを見つける
#include<bits/stdc++.h>
using namespace std;
vector<int> graph[1000];
bool visited[1000];
int count=0;
void dfs(int s)
{
count=count+1;
visited[s]=true;
for(int i=0;i<graph[s].size();i++)
if(visited[graph[s][i]]==false)
dfs(i);
}
int main()
{
int n,m;
cin>>n>>m;
int i;
for(i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
graph[x].push_back(y);
graph[y].push_back(x);
}
int k;
cin>>k;
dfs(k);
cout<<n-count;
}
最初にグラフにはn個のノードがあります。 DFS処理の後、特定のノードkについて、dfs(k)は、kに接続されたノードの数を見つける。 到達できないノードはn-countで計算できます。
しかし、このコードでは、「カウント」への参照がのというエラーが表示されます。 問題は何ですか?私はDFSの再帰的な方法で間違いを犯しましたか? C++ライブラリで
あなたが名前空間を汚染してはならない理由です。 'using namespace std;'が原因です。 [なぜ "namespace stdを使用する"が悪い習慣とみなされるのですか?](https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice) – Yashas