bzoj1648

时间:2023-03-09 06:32:11
bzoj1648

题解:

简单灌水

然后统计一下

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int ne[N],num,fi[N],n,k,m,x,y,ans,zz[N],f[N],sum[N],x1[N];
void jb(int x,int y)
{
ne[++num]=fi[x];
fi[x]=num;
zz[num]=y;
}
void dfs(int x)
{
f[x]=;
sum[x]++;
for (int i=fi[x];i;i=ne[i])
if (!f[zz[i]])dfs(zz[i]);
}
int main()
{
scanf("%d%d%d",&k,&n,&m);
for (int i=;i<=k;i++)scanf("%d",&x1[i]);
while (m--)
{
scanf("%d%d",&x,&y);
jb(x,y);
}
for (int i=;i<=k;i++)
{
memset(f,,sizeof f);
dfs(x1[i]);
}
for (int i=;i<=n;i++)
if (sum[i]==k)ans++;
printf("%d",ans);
return ;
}