是不能用BFS还是我代码有错误?
#include <bits/stdc++.h>
using namespace std;
int k,n,m;
int cows[101];
int x,y;
int cur,_try;
vector<int>v[1001];
queue<int>q;
int vis[1001];
int cnt[1001];
int ans;
int main(){
scanf("%d %d %d",&k,&n,&m);
for(int i=1;i<=k;++i){
scanf("%d",&cows[i]);
}
for(int i=1;i<=m;++i){
scanf("%d %d",&x,&y);
v[x].push_back(y);
}
for(int i=1;i<=k;++i){
vis[i] = true;
q.push(i);
while(!q.empty()){
cur = q.front();
++cnt[cur];
q.pop();
for(int j=0;j<v[cur].size();++j){
if(!vis[v[cur][j]]){
vis[v[cur][j]] = 1;
q.push(v[cur][j]);
}
}
}
memset(vis,0,sizeof(vis));
}
for(int i=1;i<=n;++i){
if(cnt[i] == k){
++ans;
}
}
printf("%d",ans);
return 0;
}