咖啡和猫
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