[Usaco06Dec] Cow Picnic

来源:互联网 发布:基础软件服务经营范围 编辑:程序博客网 时间:2024/06/08 18:37

题目链接

题解:暴搜出奇迹……

#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int M=1005;int n,m,x,y,z,t,k,tot;int vis[M],head[M],cow[M],mark[M];struct edge{    int to,next;}e[M*10];void add(int i,int j){    e[t].to=j;    e[t].next=head[i];    head[i]=t++;}void init(){    memset(head,-1,sizeof(head));    scanf("%d%d%d",&k,&n,&m);    for(int i=1;i<=k;i++)    scanf("%d",&cow[i]);    while(m--)    {        scanf("%d%d",&x,&y);        add(x,y);    }}void dfs(int u){    vis[u]=1;mark[u]++;    for(int i=head[u];i!=-1;i=e[i].next)    {        int v=e[i].to;        if(!vis[v])        dfs(v);    }}void work(){    for(int i=1;i<=n;i++){        memset(vis,0,sizeof(vis));        dfs(cow[i]);    }    for(int i=1;i<=n;i++)    if(mark[i]==k) tot++;    printf("%d\n",tot);}int main(){    init();    work();    return 0;} 
0 0
原创粉丝点击