Laplace
题号:NC229305
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

拉普拉斯是善良的恶魔,但是仍然有人向她许下愿望,这当中有好人也有坏人。人们的认识关系为一个树形结构,因为人们的记忆力问题,他们会互相遗忘或者认识。而拉普拉斯每次会选择一些人,保证这些人在关系树上形成一个连通块,实现他们的愿望,人在实现了愿望以后就会改变本性。人的善恶是会改变的,并且总是带着相关的人改变,所以关系树上的一条链上的人的善恶也会改变。

你有一棵树 T,给定每个点的颜色黑或者白。

每次你可以选择一个连通块翻转块内所有颜色,问最小翻转次数,使得所有点为白点,每次询问相互独立。

1. 支持链翻转颜色。
2. 结构动态。

输入描述:

第一行两个数 表示树点数和操作次数。

接下来 n-1 行每行两个数表示一条树边。

接下来一行 n 个数,其中每个数都是 0 或 1。

若第 i 个数为 0,则第 i 个点为白色。

若第 i 个数为 1,则第 i 个点为黑色。

最后 m 行每行 5 个数 a,b,c,d,e 表示在 c 为根的意义下将 a 的父亲换为 b ,之后翻转链 d,e 的颜色。


输出描述:

对于每一次操作后,你需要输出答案。
示例1

输入

复制
3 3
2 1
3 2
1 1 0
2 1 1 1 2
3 1 1 2 3
3 2 1 3 3

输出

复制
0
1
1