我有一个无向图(可能是断开连接的图)。 我需要找到给定节点的无法访问节点数。
#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递归方法中犯了什么错误吗?
答案 0 :(得分:2)
在C ++库中有count
函数模板 - 在algorithm
标题中(#include <bits/stdc++.h>
指令包含),您可以在::
之前添加count
来解决您的问题{1}}和dfs
函数中的{1}}。
main
和
::count= ::count+1;