咖啡和猫


Submit solution

Points: 99
Time limit: 1.0s
Memory limit: 80M

Author:
Problem type
Allowed languages
C, C++

咖啡和猫

题意概述

有一棵以 \(1\) 为根的树,共 \(n\) 个顶点(\(1\) 也是 Kefa 的家)。部分顶点有猫,用数组 \(a_i\) 表示(\(a_i=1\) 有猫,\(a_i=0\) 无猫)。 餐厅设在叶子结点上。Kefa 想找一家餐厅,但他很怕猫:从家(\(1\))到餐厅的路径上,不允许出现超过 \(m\) 个连续"有猫"顶点。 问:满足条件的餐厅数量


输入格式

  • 第一行:\(n, m\)(\(2 \le n \le 10^{5}\), \(1 \le m \le n\))。
  • 第二行:\(a_1, a_2, \dots, a_n\)(\(a_i \in {0,1}\))。
  • 接下来 \(n-1\) 行:每行两整数 \(x_i, y_i\) 表示树的一条无向边(保证构成一棵树)。

输出格式

  • 输出一个整数:满足"路径上连续有猫数 \(\le m\)"的叶子结点数

样例一

输入

4 1
1 1 0 0
1 2
1 3
1 4

输出

2

说明:餐厅在 \(2,3,4\)。从 \(1\to 2\) 路径有连续两点有猫(\(1,2\)),超出 \(m=1\);其余两家可行。


样例二

输入

7 1
1 0 1 1 0 0 0
1 2
1 3
2 4
2 5
3 6
3 7

输出

2

Comments

There are no comments at the moment.