zoukankan      html  css  js  c++  java
  • 牛是否可以都到达某点——pku3256 Cow Picnic

    开始用floyd可以,不过时间太慢了(N*N*N)
    后来枚举牛做DFS连通性检验,O(N*M)
    View Code
    #include<stdio.h>
    #include
    <string.h>
    int net[1009][1009];
    bool visit[1009];
    int cow[109];
    int c[1009];

    void dfs(int x)
    {
    c[x]
    ++;
    visit[x]
    =1;
    for(int i=1;i<=net[x][0];i++)
    {
    if(!visit[net[x][i]])
    dfs(net[x][i]);
    }
    }

    int main()
    {
    int k,n,m;
    while(scanf("%d%d%d",&k,&n,&m)!=EOF){
    int i,j;
    for(i=1;i<=k;i++){
    scanf(
    "%d",&cow[i]);
    }
    for(i=0;i<=n;i++){
    c[i]
    =0;
    for(j=0;j<=n;j++){
    net[i][j]
    =0;
    }
    }

    for(i=1;i<=m;i++){
    int x,y;
    scanf(
    "%d%d",&x,&y);
    net[x][
    ++net[x][0]]=y;
    }

    for(i=1;i<=k;i++){
    memset(visit,
    0,sizeof(visit));
    dfs(cow[i]);
    }

    int all=0;
    for(i=1;i<=n;i++){
    if(c[i]==k)
    all
    ++;
    }

    printf(
    "%d\n",all);
    }
    }

      

  • 相关阅读:
    canvas和svg
    表单控件及表单属性
    ajax
    数据结构与算法经典问题解析-Java语言描述
    SpringBoot
    ThreadLocal 原理
    代理模式-结构型
    框架面试
    Hash算法总结
    集合与多线程面试
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2120647.html
Copyright © 2011-2022 走看看