问题 G: 森林迷宫

内存限制:524 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

在一片神秘的森林中,有一座古老的迷宫,连接着 nn 个魔法节点,节点编号从 11 到 nn。这些节点通过 n−1n1 条双向魔法路径相连,形成一个树形结构(无环连通图)。冒险者需要从起点节点 ss 出发,找到一条通往终点节点 tt 的路线。每条路径都有独特的魔法属性:从节点 uu 到节点 vv 可以获得 pp 分,从节点 vv 到节点 uu 可以获得 qq 分(pp 和 qq 可以是正数、负数或零)。然而,迷宫的魔法规则限制每条路径的每个方向(u→vuv 或 v→uvu)最多只能走一次。你的任务是规划一条从节点 ss 到节点 tt 的路线,使得总得分最大。请你求出这个最大的总得分。


为了防止输入过大带来的常数问题,C++ 选手请尽量使用关闭流同步的 std::cin 和 std::cout 实现输入输出,否则可能出现因读入输出问题导致的 TLE 等。

int main(){
  std::ios::sync_with_stdio(0);
  std::cin.tie(0);

  // your code

  return 0;
}


				

输入格式

第一行一个整数 TT (1≤T≤106)(1T106),表示测试数据组数。

每组数据的第一行包含一个整数 nn (2≤n≤105)(2n105),表示节点数量。

接下来 n−1n1 行,每行包含四个整数 u,v,p,qu,v,p,q (1≤u,v≤n,u≠v,−109≤p,q≤109)(1u,vn,u=v,109p,q109),表示一条连接节点 uu 和 vv 的路径,从 uu 到 vv 的得分为 pp,从 vv 到 uu 的得分为 qq

接下来一行,包含两个整数 s,ts,t (1≤s,t≤n)(1s,tn),表示起点和终点的编号。

保证所有测试数据的 nn 之和不超过 106106

输出格式

对于每组数据,输出一行一个整数,表示从节点 ss 到节点 tt 的最高总得分。

输入样例 复制

3
4
1 2 5 2
2 3 -1 3
3 4 4 -2
1 4
5
1 4 1 -10
2 1 -3 -8
4 3 7 -1
1 5 4 7
1 5
6
4 3 -2 3
5 6 -10 10
6 2 -3 7
1 6 10 -5
1 3 -6 1
5 4

输出样例 复制

8
4
-14