zoukankan      html  css  js  c++  java
  • poj 3256 Cow Picnic (dfs)

    http://poj.org/problem?id=3256

    对N个牧场用邻接表存储路径,记录下每个牧场初始牛的数目,沿路径dfs求连通牧场的牛数和。

    code:

    #include<cstdio>
    #include<cstring>
    using namespace std ;
    int num[1001] ;
    int sum[1001] ;
    int head[1001] ;
    bool vis[1001] ;
    int x ;
    struct past{
        int v, nex ;
    }edge[10001] ;
    void addedge(int u, int v){
        edge[x].v = v ;
        edge[x].nex = head[u] ;
        head[u] = x ;
        x ++ ;
    }
    void dfs(int a, int b){
        for(int i=head[a]; i; i=edge[i].nex){
            if(vis[edge[i].v])  continue ;
            vis[edge[i].v] = true ;
            sum[edge[i].v] += b ;
            dfs(edge[i].v, b) ;
        }
    }
    int main(){
        int n, m, k, i, u, v, ans ;
        while(~scanf("%d%d%d", &k, &n, &m)){
            memset(num, 0sizeof(num)) ;
            memset(sum, 0sizeof(sum)) ;
            for(i=0; i<k; i++){
                scanf("%d", &u) ;
                num[u] ++ ;
            }
            for(i=0; i<m; i++){
                scanf("%d%d", &u, &v) ;
                addedge(u, v) ;
            }
            for(i=1; i<=n; i++){
                memset(vis, falsesizeof(vis)) ;
                sum[i] += num[i] ;
                vis[i] = true ;
                dfs(i, num[i]) ;
            }
            ans = 0 ;
            for(i=1; i<=n; i++)
                if(sum[i]==k)   ans ++ ;
            printf("%d\n", ans) ;
        }
        return 0 ;} 
  • 相关阅读:
    c# 简单的通用基础字典
    c#中设置像数量,价格,金额等的textbox的限制条件,用户只能输入数字或小数
    Introduction to Project Management(I)
    MoSCoW Method
    A Guide to Creating a Quality Project Schedule
    Estimating Project Costs
    SMART Goals
    10 Ways to Inspire Your Team
    ExtractTablesFromSQL
    iOS-传感器及使用
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2396561.html
Copyright © 2011-2022 走看看