bzoj1648 / P2853 [USACO06DEC]牛的野餐Cow Picnic

P2853 [USACO06DEC]牛的野餐Cow Picnic

你愿意的话,可以写dj。

然鹅,对一个缺时间的退役选手来说,暴力模拟是一个不错的选择。

让每个奶牛都把图走一遍,显然那些被每个奶牛都走过的点就是符合条件的点。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 #define N 1002
 6 int val[N],in[N],k,n,m,ans;
 7 bool d[N][N],vis[N];
 8 void dfs(int x,int t){
 9     vis[x]=1; val[x]+=t;
10     for(int i=1;i<=n;++i)
11         if(d[x][i]&&!vis[i])
12             dfs(i,t);
13 }
14 int main(){
15     scanf("%d%d%d",&k,&n,&m);
16     for(int q,i=1;i<=k;++i)
17         scanf("%d",&q),++in[q];
18     for(int i=1,q1,q2;i<=m;++i)
19         scanf("%d%d",&q1,&q2),d[q1][q2]=1;
20     for(int i=1;i<=n;++i)
21         if(in[i]){
22             memset(vis,0,sizeof(vis));
23             dfs(i,in[i]);
24         }
25     for(int i=1;i<=n;++i)
26         if(val[i]==k) ++ans;
27     printf("%d",ans);
28     return 0;
29 }
View Code

 

posted @ 2018-11-28 14:14  kafuuchino  阅读(168)  评论(0编辑  收藏  举报