题目背景
本题满分 110。
题目描述
给定一棵 n 个点的树,每个点有红权值 ci 和蓝权值 pi。
q 次独立询问,每次询问给定 u,v,设 u,v 最短路上的点依次为 s1,s2,…,sk。你需要依次将 s1,s2,…,sk 染成红色或者蓝色,满足:
- 对于 i=1,2,…,k,在染色 s1∼si 时,设有 x 个红点,y 个蓝点,则 max(x,y)<min(x,y)+3。
对于每次询问,求出满足条件的染色方案中,所有蓝点的蓝点权和红点的红点权之和的最大值。形式化地说,你需要求出
$$\sum_{1\le i\le k,s_i\text{ is red vertex}} c_{s_i}+\sum_{1\le i\le k,s_i\text{ is blue vertex}} p_{s_i}$$
的最大值。
根据定义,可以证明符合条件的路径总是存在。
输入格式
第一行,两个正整数 n,q(1≤n,q≤105)。
第二行,n 个整数 ci(−109≤ci≤109)。
第三行,n 个整数 pi(−109≤pi≤109)。
接下来 (n−1) 行,每行两个正整数 u,v(1≤u,v≤n,u=v),描述一条树边。保证输入形成树。
接下来 q 行,每行两个正整数 u,v(1≤u,v≤n),描述一次询问。
输出格式
输出 q 行,每行一个整数,表示答案。
4 1
10 10 10 10
-10 0 -10 0
1 2
2 3
3 4
1 4
30
5 3
-5 -4 0 -3 3
3 1 -5 0 0
3 2
1 4
3 5
1 2
2 5
1 4
5 3
4
3
3
提示
样例解释
样例一解释:依次染成红、蓝、红、红是一个最优解。
子任务
- Subtask 1 (27 pts):n,q≤15。
- Subtask 2 (41 pts):n,q≤1000。
- Subtask 3 (19 pts):q≤10000。
- Subtask 4 (23 pts):无额外限制。