DFS水黄求调
查看原帖
DFS水黄求调
905133
sssscy_free_stdio楼主2023/11/30 21:36

https://www.luogu.com.cn/problem/P2853

10分

#include<bits/stdc++.h>
using namespace std;
int k,n,m,u,v,ret,vis[10010],mp[10010],a[10010];
vector<int>g[10010];
void dfs(int u){
	mp[u]++;
	for(int i=0;i<g[u].size();i++){
		int v=g[u][i];
		if(vis[v]==0){
			vis[v]=1;
			dfs(v);
		}
	}
}int main(){
	scanf("%d%d%d",&k,&n,&m);
	for(int i=1;i<=k;i++){
		scanf("%d",&a[i]);
	}for(int i=1;i<=m;i++){
		scanf("%d%d",&u,&v);
		g[u].push_back(v);
	}for(int i=1;i<=k;i++){
		memset(vis,0,sizeof(vis));
		dfs(a[i]);
	}for(int i=1;i<=n;i++){
		if(mp[i]==k){
			ret++;
		}
	}printf("%d",ret);
	return 0;
}

2023/11/30 21:36
加载中...