mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
853 字
2 分钟
樱之旅人
2026-05-13

时空限制#

C/C++:4s / 1024MB

其他语言:8s / 1024MB

题目背景#

「一条世界线上会有无限的分枝,每条分枝都会通往一个平行世界。」

「这些分枝如同樱花树的枝丫,点缀着无数樱花。」

「这些樱花究竟是盛开的,含苞待放的,还是枯萎的呢?」

「阿良良木只是一位时间的旅人,能做得到的只有『观测』和『转移』。」

「收下来自『你』的电报吧,名侦探。这条分枝是最后的希望了。」

阿良良木是平行世界的观测者。为了完成使命,她需要将其他平行世界中风见司的电报,转交给最后一条分枝上的司。

题目描述#

错综复杂的世界线可以看作一棵樱花树1。树上共有 nn 个节点,编号为 11nn。阿良良木一开始位于节点 ss,她需要到达节点 tt

阿良良木在旅途中会处于两种状态之一:观测状态转移状态

每条边连接两个节点 u,vu, v,并拥有两个代价 a,ba, b

  • 当阿良良木处于 观测状态 时,沿这条边移动的代价为 aa
  • 当阿良良木处于 转移状态 时,沿这条边移动的代价为 bb

树上有 kk 个特殊节点,这些节点被称为 樱点

当阿良良木位于某个樱点时,她可以在 观测状态转移状态 之间切换,切换不需要任何代价,且可以在同一个樱点切换任意多次。

阿良良木初始处于 观测状态,最终到达节点 tt 时,她可以处于任意状态。

为了保存力量,阿良良木需要知道从节点 ss 到达节点 tt 所需要的最小总代价。

输入格式#

每个测试包含多组测试用例。第一行包含一个整数 TT (1T1041 \le T \le 10^4),表示测试用例的数量。

对于每组测试用例:

  • 第一行包含四个整数 n,k,s,tn, k, s, t (2n2×1052 \le n \le 2 \times 10^51kn1 \le k \le n1s,tn1 \le s,t \le nsts \ne t),分别表示树的节点数、樱点数量、起点和终点。

  • 第二行包含 kk 个互不相同的整数 p1,p2,,pkp_1, p_2, \dots, p_k (1pin1 \le p_i \le n),表示所有樱点的编号。

  • 接下来 n1n-1 行,每行包含四个整数 u,v,a,bu, v, a, b (1u,vn1 \le u,v \le n1a,b1091 \le a,b \le 10^9),表示节点 uu 和节点 vv 之间有一条边、观测状态时移动的代价和转移状态时移动的代价。

保证每组测试用例给出的图都是一棵树。

保证所有测试用例中 nn 的总和不超过 5×1055 \times 10^5

输出格式#

对于每组测试用例,输出一行一个整数,表示从节点 ss 到达节点 tt 的最小总代价。

样例#

用例输入#

3
3 1 1 3
2
1 2 1 4
2 3 3 2
4 2 4 3
1 4
1 2 2 4
2 3 3 5
2 4 1 3
5 1 1 5
3
1 2 2 3
2 3 2 1
2 4 100 1
4 5 100 1

用例输出#

3
4
7

说明/提示#

在第一个测试用例中,一种最优方案为 1231 \to 2 \to 3。在节点 22 切换到转移状态后,总代价为 1+2=31+2=3

在第三个测试用例中,一种最优方案为 1232451 \to 2 \to 3 \to 2 \to 4 \to 5。在节点 33 切换到转移状态后,总代价为 2+2+1+1+1=72+2+1+1+1=7

Footnotes#

  1. 一棵包含 nn 个顶点的树是指一个具有 nn 个顶点、n1n-1 条边的无向连通图。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

樱之旅人
https://ac.nowcoder.com/acm/contest/134758/G
作者
Amekai
发布于
2026-05-13
许可协议
Unlicensed

部分信息可能已经过时

目录