poj3256
#include<stdio.h> #include<string.h> //#define INF 99999 #define N 1000+10 int path[N][N]; int vis[N]; int start[N]; int sum[N];//第i个农场最多有几头牛能到达 int k,n,m;//k头牛;n个牧场(出发点);m条路 void dfs(int s){ int i; sum[s]++; vis[s]=1; for(i=1;i<=n;i++){ if(path[s][i]==1&&vis[i]==0) dfs(i); } return ; } int main(){ int i,j; int tp1,tp2,ans; scanf("%d%d%d",&k,&n,&m); memset(start,0,sizeof(start)); for(i=1;i<=k;i++){ scanf("%d",&start[i]); } memset(path,0,sizeof(path)); for(i=1;i<=m;i++){ scanf("%d%d",&tp1,&tp2); path[tp1][tp2]=1; } memset(sum,0,sizeof(sum)); ans=0; for(i=1;i<=k;i++){ memset(vis,0,sizeof(vis)); //sum[start[i]]++;// dfs(start[i]); } for(i=1;i<=n;i++) if(sum[i]==k) ans++; printf("%d\n",ans); return 0; }
我都能简单的PASS。。。不说了
keep moving...