zoukankan      html  css  js  c++  java
  • P2853 [USACO06DEC]牛的野餐Cow Picnic

    -------------------------

    长时间不写代码了,从学校中抽身出来真的不容易啊

    ------------------------

    链接:Miku

    -----------------------

    这道题的思路就在于建反图,如果每一头牛都能到达的话,那么在反图上,这个点也一定能到达每一头牛。

    那么我们的目的就明确了,找到所有能在反图上找到每一头牛的点。

    -----------------------

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int p;
    int head[1001];
    int f;
    struct b{
        int ne;
        int to;
    } e[10005]; 
    int k,n,m;
    int con;
    int cow[1001];
    int x,y;
    int ans;
    int sum;
    int vis[1001];
    void add(int f,int t){
        p++;
        e[p].ne=head[f];
        e[p].to=t;
        head[f]=p;
    }
    void dfs( int now){
        if(vis[now]||f)
        return ;
        vis[now]=1;
        sum+=cow[now];
        if(sum==k){
            f=1;
            return ;
        }
        for(int i=head[now];i;i=e[i].ne){
            int v=e[i].to;
            dfs(v);
        }
        return ;
    }
    int main(){
        cin>>k>>n>>m;
        for(int i=1;i<=k;++i){
            cin>>x;
            cow[x]++;
        }
        for(int i=1;i<=m;++i){
            cin>>y>>x;
            add(x,y);
        }
        for(int i=1;i<=n;++i){
            f=0;
            sum=0;
            memset(vis,0,sizeof(vis));
            dfs(i);
            if(f)    
            ans++;
        }
        cout<<ans;
        return 0;
    }
    Ac
  • 相关阅读:
    图片放大功能
    谈论算法
    socket基础
    js实现快速排序
    mysql死锁问题分析(转)
    MVCC 专题
    ActiveMQ持久化方式(转)
    消息队列中点对点与发布订阅区别(good)
    tomcat下部署activemq(转)
    Android文件下载(实现断点续传)
  • 原文地址:https://www.cnblogs.com/For-Miku/p/12203636.html
Copyright © 2011-2022 走看看