poj 3256

来源:互联网 发布:淘宝默认头像 编辑:程序博客网 时间:2024/04/29 21:12
/*  枚举每个牛点,计算出能到达其他的所有点的数目 */#include <stdio.h>#include <string.h>int n;bool map[1001][1001];int nums[1001];int cows[1001];bool vis[1001];void dfs(int now){    vis[now]=1;    nums[now]++;  for(int i=1;i<=n;i++)  {       if(map[now][i] && !vis[i])       {            dfs(i);       }    }     }int main(){    int k,m;    int x,y;    while(scanf("%d%d%d",&k,&n,&m)!=EOF)    {      for(int i=0;i<k;i++)      {         scanf("%d",&cows[i]);                                          }                                             memset(map,0,sizeof(map));            memset(nums,0,sizeof(nums));            for(int i=0;i<m;i++)      {         scanf("%d%d",&x,&y);         map[x][y]=1;              }            for(int i=0;i<k;i++)      {         memset(vis,0,sizeof(vis));         dfs(cows[i]);              }            int count=0;            //for(int i=1;i<=n;i++)      //   printf("(i)%d %d\n",i,nums[i]);            for(int i=1;i<=n;i++)          if(nums[i]==k)         count++;               printf("%d\n",count);                                                                                       }                return 0;    }

原创粉丝点击