• T2


    题目描述

    K(1≤K≤100)只奶牛分散在N(1≤N≤1000)个牧场.现在她们要集中起来进餐. 
    牧场之间有M(1≤M≤10000)条有向路连接,而且不存在起点和终点相同的有向路. 
    她们进餐的地点必须是所有奶牛都可到达的地方.那么,有多少这样的牧场呢? 

    输入

    第1行输入K,N,M.  
    接下来K行,每行一个整数表示一只奶牛所在的牧场编号. 
    接下来M行,每行两个整数,表示一条有向路的起点和终点 

    输出

    输出一行,即所有奶牛都可到达的牧场个数。

    样例输入

    2 4 4
    2
    3
    1 2
    1 4
    2 3
    3 4

    样例输出

    2
    老师的作业还是一如既往的水,从数据来看这怎么都不能爆搜啊,然而还真过了,这个高考期间的作业,不想吐槽
     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 const int maxn=1e6+10;
     5 int n,m,k,ans;
     6 struct node
     7 {
     8     int next;
     9     int to;
    10 }way[maxn];
    11 int tot=0;
    12 bool vis[maxn];
    13 int c[maxn];
    14 int deep[maxn];
    15 int head[maxn];
    16 int add(int x,int to)
    17 {
    18     way[++tot].next=head[x];
    19     way[tot].to=to;
    20     head[x]=tot;
    21 }
    22 int dfs(int x)
    23 {
    24     deep[x]++;
    25     vis[x]=1;
    26     for(int i=head[x];i;i=way[i].next)
    27     {
    28         if(!vis[way[i].to])
    29         {
    30             dfs(way[i].to);
    31         }
    32     }
    33 }
    34 int main()
    35 {
    36     cin>>k>>n>>m;
    37     memset(head,0,sizeof(head));
    38     for(int i=1;i<=k;i++)
    39     {
    40         cin>>c[i];
    41     }
    42     for(int i=1;i<=m;i++)
    43     {
    44         int g,h;
    45         cin>>g>>h;
    46         add(g,h);
    47     }
    48     for(int i=1;i<=k;i++)
    49     {
    50         memset(vis,0,sizeof(vis));
    51         dfs(c[i]);
    52     }
    53     for(int i=1;i<=n;i++)
    54     {
    55         if(deep[i]==k)
    56         {
    57             ans++;
    58         }
    59     }
    60     cout<<ans<<endl;
    61     return 0;    
    62 }
     
  • 相关阅读:
    mac安装go环境
    Ubuntu-Mininet安装
    安装pyenv
    linux下安装weblogic
    C#常用方法
    jenkins部署net core ——2
    jenkins部署net core ——1
    Inno Steup
    安装两个SQL server 实例
    C#线程启动、暂停、恢复、停止怎么实现
  • 原文地址:https://www.cnblogs.com/2529102757ab/p/10951722.html
Copyright © 2020-2023  润新知