@[A_chicken_boy](/user/774204) 因为你 dfs 在访问到已经访问过的点是没有退出。
加个限制就过了
```cpp
#include <bits/stdc++.h>
using namespace std ;
#define leng 10001
#define N 1001
int k , n , m ;
int head[leng] , ver[leng] , mnext[leng] , tot ;
bool havecow[N] ;
bool canvis[N] ;
int ans ;
void add ( int , int ) ;
void dfs ( int ) ;
int main ( ){
cin >> k >> n >> m ;
for ( int i = 1 ; i <= k ; ++i )
{
int j ;
cin >> j ;
havecow[j] = true ;
}
for ( int i = 1 ; i <= m ; ++i ){
int x , y ;
cin >> x >> y ;
add ( y , x ) ;
}
int f ;
for ( int i = 1 ; i <= n ; ++i ){
// cout << "i=" << i << " : " ;
f=0;
memset( canvis , false , sizeof ( canvis ) ) ;
dfs ( i ) ;
canvis[i] = true ;
for ( int j = 1 ; j <= n ; ++j ){
// cout << canvis[j] << " " ;
if ( havecow[j] ){
if ( canvis[j] == false ){
f = 1 ;
break ;
}
}
}
// cout << endl ;
if ( !f ) ans++;
}
cout << ans ;
return 0 ;
}
void add ( int x , int y ){
mnext[++tot] = head[x] ;
head[x] = tot ;
ver[tot] = y ;
}
void dfs ( int x ){
int i ;
for ( i = head[x] ; i ; i = mnext[i] ){
int y = ver[i] ;
if(canvis[y])continue;//这里
canvis[y] = true ;
dfs ( y ) ;
}
}
```
by AgrumeStly @ 2023-09-02 17:35:00
谢谢大佬
by A_chicken_boy @ 2023-09-02 20:35:23