求助大佬,dfs错了
查看原帖
求助大佬,dfs错了
675572
syyyyhy楼主2022/4/2 17:57
#include <bits/stdc++.h>
using namespace std;


int n,m;
vector<int> g[100020];
int chu[100020];
int ans;
int vis[100020];
void dfs(int num)
{
	if(chu[num]==0) 
	{
		ans++; 
		return; 
	}
	for(int i:g[num])
	{
		if(!vis[i])
		{
			vis[i]=1;
			dfs(i);
			vis[i]=0;
		}
	} 
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int u,v;
		cin>>u>>v; 
		g[u].push_back(v);
		chu[u]++;  //看哪些没有出,就是食物链最末尾 
	}
	vis[1]=1;
	dfs(1);
	cout<<ans<<endl;
}
2022/4/2 17:57
加载中...