美文网首页
(dfs)C. Kefa and Park

(dfs)C. Kefa and Park

作者: laochonger | 来源:发表于2018-07-27 21:40 被阅读0次

传送门:https://vjudge.net/problem/246619/origin

  • 题意: 主人公要到公园去玩,这个公园是一个有根树,主人公起点在点1处,其叶子节点是餐厅所在地,其中红色标记的点都是a【i】==1的点,同时表示这个点有猫.主人公害怕猫,不希望经过连续m个点都有猫的路径,问主人公可以到达哪几个餐厅。
  • 题解: dfs,注意标记以及邻接表的使用
    代码:
#include <iostream>
#include<cstdlib>
#include<stdio.h>
#include<algorithm>
#include<set>
#include<vector>
#include<assert.h>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define per(i,a,n) for (int i=n;i>=a;i--)
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
typedef long long ll;
const ll mod = 1000000007;
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }

const int maxn = 1e5+5;
vector<int>G[maxn];
int a[maxn];
bool vis[maxn];
int out,m,n;

void init(){
    rep(i,1,n) G[i].clear();
    memset(vis,0,sizeof(vis));
    out = 0;
}

void dfs(int u,int cat){
    vis[u] = 1;
    if(cat>m)return ;
    int flag = 0;
    rep(i,0,G[u].size()-1){
        int v = G[u][i];
        if(!vis[v]){
            flag = 1;
            if(a[v]) dfs(v,cat+1);
            else dfs(v,0);
        }
    }
    if(flag==0) out++;
}

int main(){
    while(~scanf("%d%d",&n,&m)){
        init();
        rep(i,1,n) scanf("%d", &a[i]);
        rep(i,1,n-1){
            int u,v;
            scanf("%d%d", &u,&v);
            G[u].pb(v);
            G[v].pb(u);
        }
        dfs(1,a[1]);
        printf("%d",out);
    }
    return 0;
}

相关文章

  • (dfs)C. Kefa and Park

    传送门:https://vjudge.net/problem/246619/origin 题意: 主人公要到公园...

  • CUC-SUMMER-7-C

    C - Kefa and Park CodeForces - 580C Kefa decided to celeb...

  • 各种DFS

    DFS邻接矩阵遍历图 DFS邻接表遍历图 DFS回溯(不走重复路径) DFS背包(可重复选) DFS背包(不可重复选)

  • 无标题文章

    park park1

  • HDFS shell操作

    创建目录hdfs dfs -mkdir 查看所有目录hdfs dfs -ls / 上传文件hdfs dfs -pu...

  • C.

    总会遇见 无论是在夏天 还是在冬天 只要能遇见 那便是四季最美的时候 ...

  • c.

    从前,我有一头猪,我给它取名叫死猪。后来他走了。我便开始寻找,我找了很久,找到了像他,但我最后明白了,谁也...

  • Binary Tree(2)

    BFS vs DFS for Binary Tree What are BFS and DFS for Binar...

  • Clone Graph (Leetcode 133)

    DFS Approach: 注意,对于DFS,对map的赋值要在DFS loop开始以前。这样可以避免由于grap...

  • hdfs的命令行使用

    语法:hdfs dfs 参数 hdfs dfs -ls / 查看根路径下面的文件或文件夹 hdfs dfs -mk...

网友评论

      本文标题:(dfs)C. Kefa and Park

      本文链接:https://www.haomeiwen.com/subject/lfzgmftx.html