POJ 3256 Cow Picnic(DFS)

来源:互联网 发布:大学网络教育本科 编辑:程序博客网 时间:2024/06/06 10:43

水题,dfs搜索。

////  main.cpp//  Richard////  Created by 邵金杰 on 16/8/14.//  Copyright © 2016年 邵金杰. All rights reserved.//#include<iostream>#include<cstdio>#include<vector>#include<cstring>using namespace std;int arrivetime[1010];int cow[105];int vis[1010];vector<int> edges[1010];int K,N,M;void dfs(int s){    for(int i=0;i<edges[s].size();i++)    {        int e=edges[s][i];        if(!vis[e])        {            vis[e]=1;            arrivetime[e]++;            dfs(e);        }    }}int main(){    while(scanf("%d%d%d",&K,&N,&M)!=EOF)    {        memset(arrivetime,0,sizeof(arrivetime));        for(int i=0;i<=N;i++) edges[i].clear();        for(int i=0;i<K;i++)        {            scanf("%d",&cow[i]);        }        int s,e;        for(int i=0;i<M;i++)        {            scanf("%d%d",&s,&e);            edges[s].push_back(e);        }        for(int i=0;i<K;i++)        {            memset(vis,0,sizeof(vis));            int s=cow[i];            arrivetime[s]++;            vis[s]=1;            dfs(s);        }        int cnt=0;        for(int i=1;i<=N;i++)        {            if(arrivetime[i]==K) cnt++;        }        printf("%d\n",cnt);    }    return 0;}


0 0
原创粉丝点击