题意补充
查看原帖
题意补充
1274219
TCTM_temp楼主2024/7/23 18:09

二维旅行

题目描述

Piggy生活在一个无限的平面上,平面上设有笛卡尔坐标系。

平面上有nn个城市,编号为11到nn,前kk个城市被定义为大城市。第ii个城市的坐标是(xi,yi)(x_i,y_i)。

作为一名经验丰富的旅行者,Piggy在中考之后希望享受一段放松的旅行。现在,他在城市aa,他希望乘飞机前往城市bb。他可以在任何两个城市之间飞行,并且可以以任何顺序访问多个城市,但最后的目的地必须是城市bb。

由于大城市之间的贸易活跃,因此可以免费乘飞机在它们之间旅行。具体来说,两个城市ii和jj之间的机票价格f(i,j)f(i,j)定义如下:

f(i,j)={0,如果城市 i 和 j 都是大城市∣xi−xj∣+∣yi−yj∣,其他情况f(i,j)= \begin{cases} 0, & \text{如果城市 }i \text{ 和 }j \text{ 都是大城市} \\ |x_i-x_j|+|y_i-y_j|, & \text{其他情况} \end{cases}

Piggy不在乎节省时间,但他希望节省金钱。所以你需要告诉他如果他可以选择任意数量的航班,所有机票总价格的最小值是多少。

输入格式

输入的第一行包含一个整数tt(1≤t≤1041 \le t \le 10^4) - 测试用例的数量。以下是测试用例的描述。

每个测试用例的第一行包含4个整数nn、kk、aa和bb(2≤n≤2⋅105,0≤k≤n,1≤a,b≤n,a≠b2 \le n \le 2 \cdot 10^5, 0 \le k \le n, 1 \le a, b \le n, a \ne b) - 表示城市的数量、大城市的数量,以及起始和终点城市的编号。

然后接下来的nn行,第ii行包含两个整数xix_i和yiy_i(−109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9) - 第ii个城市的坐标。前kk行描述大城市。保证所有的坐标都是两两不同的。

保证所有测试用例总城市数量之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数 - 所有机票的总价格的最小值。

示例 #1

示例输入 #1

5
6 2 3 5
0 0
1 -2
-2 1
-1 3
2 -2
-3 -3
2 0 1 2
-1000000000 -1000000000
1000000000 1000000000
7 5 4 2
154 147
-154 -147
123 456
20 23
43 20
998 244
353 100
3 1 3 1
0 10
1 20
2 30
4 3 2 4
0 0
-100 100
-1 -1
-1 0

示例输出 #1

4
4000000000
0
22
1

提示

在第一个测试用例中:

大城市被标记为红色。选择航班的最佳方式是: 3→1→2→53\rightarrow 1 \rightarrow 2 \rightarrow 5,这将花费3+0+1=43+0+1=4。注意,航班1→21\rightarrow 2的费用是00,因为城市11和22都是大城市。

在第二个测试用例中,由于只有22个城市,唯一的方式就是从城市11飞往城市22。

在第三个测试用例中,由于城市22和44都是大城市,Piggy可以直接从城市22飞往城市44,花费为00。

在第四个测试用例中,Piggy可以选择以下航班: 3→2→13\rightarrow 2\rightarrow 1,费用为11+11=2211+11=22。

2024/7/23 18:09
加载中...