[BalticOI 2021 Day2] The Xana coup
题目描述
给定一棵点数为 $N$ 个树,第 $i$ 个点有点权 $a_i$,$a_i \in \{0,1\}$。
你可以进行切换操作:
- 对点 $i$ 进行切换操作会使得点 $i$ 及与其 **直接相连** 的点的点权取反。
其中直接相连指两点之间恰好只有一条边。
求至少需要多少次切换操作才能使得所有点的点权变为 $0$。
输入输出格式
输入格式
第一行一个整数 $N$ 代表树的点数。
接下来 $N-1$ 行每行两个整数代表树的一条边。
第 $N+1$ 行 $N$ 个整数 $a_i$ 代表第 $i$ 个点的点权。
输出格式
如果有解,一行一个整数代表答案。
如果无解,输出 `impossible`。
输入输出样例
输入样例 #1
5
1 2
1 3
2 4
2 5
0 1 0 1 1
输出样例 #1
4
输入样例 #2
5
1 2
2 3
3 4
4 5
0 1 1 1 1
输出样例 #2
impossible
说明
#### 样例 1 解释
![](https://cdn.luogu.com.cn/upload/image_hosting/qyej3711.png)
$a_i=0$ 为黑色,$a_i=1$ 为白色。
可以对点 $4,5,3,1$ 进行切换操作使得所有点的点权为 $0$。
#### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(5 pts):$N \le 20$。
- Subtask 2(15 pts):$N \le 40$。
- Subtask 3(10 pts):如果点 $u$ 和点 $v$ 满足 $|u-v|=1$,那么他们有边相连。
- Subtask 4(40 pts):一个点最多与 $3$ 个点相连。
- Subtask 5(30 pts):无特殊限制。
对于 $100\%$ 的数据,$3 \le N \le 10^5$。
#### 说明
翻译自 [BalticOI 2021 Day2 C The Xana coup](https://boi.cses.fi/files/boi2021_day2.pdf)。