第 4 题 和谐 (harmonija)
时间限制 1.0 s · 空间限制 256 MB · 111 个测试点 · 全文比较(过滤行末空格及文末回车)
本题使用文件输入输出:输入文件 harmonija.in,输出文件 harmonija.out。
本题满分 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。
对于每次询问,求出满足条件的染色方案中,所有蓝点的蓝点权和红点的红点权之和的最大值。形式化地说,你需要求出
1≤i≤k, si is red vertex∑csi+1≤i≤k, si is blue vertex∑psi的最大值。
根据定义,可以证明符合条件的路径总是存在。
输入格式
第一行,两个正整数 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 行,每行一个整数,表示答案。
样例
样例 1
输入:
文本
4 1
10 10 10 10
-10 0 -10 0
1 2
2 3
3 4
1 4
输出:
样例 2
输入:
文本
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
输出:
提示
样例解释
样例一解释:依次染成红、蓝、红、红是一个最优解。
子任务
- Subtask 1(27 pts):n,q≤15。
- Subtask 2(41 pts):n,q≤1000。
- Subtask 3(19 pts):q≤10000。
- Subtask 4(23 pts):无额外限制。