zoukankan      html  css  js  c++  java
  • Codeforces Round #321 (Div. 2) C. Kefa and Park dfs

    题目链接:

    http://codeforces.com/contest/580/problem/C

    题意:

    给你一棵树,然后每个叶子节点会有一家餐馆
    你讨厌猫,就不会走有连续超过m个节点有猫的路
    然后问你最多去几家饭店

    题解:

    dfs 不能写成单向边 会WA9

    代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 #define MS(a) memset(a,0,sizeof(a))
     5 #define MP make_pair
     6 #define PB push_back
     7 const int INF = 0x3f3f3f3f;
     8 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;
     9 inline ll read(){
    10     ll x=0,f=1;char ch=getchar();
    11     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    12     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    13     return x*f;
    14 }
    15 //////////////////////////////////////////////////////////////////////////
    16 const int maxn = 1e5+10;
    17 
    18 int n,m,cat[maxn],vis[maxn],ans;
    19 vector<int> G[maxn];
    20 
    21 void dfs(int u,int fa,int cnt){
    22     for(auto v : G[u]){
    23         if(v == fa) continue;  // 不能往回走 也就是 不能等于父节点
    24         if(cat[v]==0){
    25             if(G[v].size()==1)
    26                 ans++;
    27 
    28             dfs(v,u,0);
    29         }else if(cnt+1<=m){
    30             if(G[v].size()==1)
    31                 ans++;
    32 
    33             dfs(v,u,cnt+1);
    34         }
    35     }
    36 }
    37 
    38 int main(){
    39     n=read(),m=read();
    40     for(int i=1; i<=n; i++){
    41         cat[i] = read();
    42     }
    43 
    44     for(int i=1; i<n; i++){
    45         int u=read(),v=read();
    46         G[u].push_back(v);
    47         G[v].push_back(u);
    48     }
    49 
    50     dfs(1,0,cat[1]);
    51 
    52     cout << ans << endl;
    53 
    54     return 0;
    55 }
  • 相关阅读:
    Swagger2文档生成器
    SSM中spring配置文件
    REDTful风格设计接口
    xss练习
    使用burp绕过token爆破用户名密码
    简单的内网渗透实验
    XSS Challenges
    一次简单的渗透
    vim进阶学习
    kali的部分学习
  • 原文地址:https://www.cnblogs.com/yxg123123/p/6827670.html
Copyright © 2011-2022 走看看