#P8127. [BalticOI 2021 Day2] The Xana coup

    ID: 6693 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>动态规划,dp2021树形 dpBalticOI

[BalticOI 2021 Day2] The Xana coup

题目描述

给定一棵点数为 NN 个树,第 ii 个点有点权 aia_iai{0,1}a_i \in \{0,1\}

你可以进行切换操作:

  • 对点 ii 进行切换操作会使得点 ii 及与其 直接相连 的点的点权取反。

其中直接相连指两点之间恰好只有一条边。

求至少需要多少次切换操作才能使得所有点的点权变为 00

输入格式

第一行一个整数 NN 代表树的点数。

接下来 N1N-1 行每行两个整数代表树的一条边。

N+1N+1NN 个整数 aia_i 代表第 ii 个点的点权。

输出格式

如果有解,一行一个整数代表答案。

如果无解,输出 impossible

5
1 2
1 3
2 4
2 5
0 1 0 1 1
4
5
1 2
2 3
3 4
4 5
0 1 1 1 1
impossible

提示

样例 1 解释

ai=0a_i=0 为黑色,ai=1a_i=1 为白色。

可以对点 4,5,3,14,5,3,1 进行切换操作使得所有点的点权为 00

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(5 pts):N20N \le 20
  • Subtask 2(15 pts):N40N \le 40
  • Subtask 3(10 pts):如果点 uu 和点 vv 满足 uv=1|u-v|=1,那么他们有边相连。
  • Subtask 4(40 pts):一个点最多与 33 个点相连。
  • Subtask 5(30 pts):无特殊限制。

对于 100%100\% 的数据,3N1053 \le N \le 10^5

说明

翻译自 BalticOI 2021 Day2 C The Xana coup