叶子的颜色
题号:NC50514
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给一棵有m个节点的无根树,你可以选择一个度数大于1的节点作为根,然后给一些节点(根、内部节点、叶子均可)着以黑色或白色。你的着色方案应保证根节点到各叶子节点的简单路径上都包含一个有色节点,哪怕是叶子本身。
对于每个叶子节点u,定义c_u为从根节点到u的简单路径上最后一个有色节点的颜色。给出每个c_u的值,设计着色方案使得着色节点的个数尽量少。

输入描述:

第一行包括两个数m,n,依次表示节点总数和叶子个数,节点编号依次为1至m。
接下来n行每行一个0或1的数,其中0表示黑色,1表示白色,依次为的值。
接下来m-1行每行两个整数a,b,表示节点a与b有边相连。

输出描述:

输出仅一个数,表示着色节点数的最小值。
示例1

输入

复制
5 3
0
1
0
1 4
2 5
4 5
3 5

输出

复制
2

备注: