传统题 1000ms 256MiB

兔子的舞蹈配对

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

【问题背景】

兔年开学典礼上,兔王准备组织一场别开生面的红白兔子交谊舞。

【问题描述】

NN 只红兔子和 MM 只白兔子(满足 NMN \le M)分别站在一条笔直的山路上。我们用一个正整数 XiX_i 表示第 ii 只红兔子所处的位置,用一个正整数 YjY_j 表示第 jj 棵大树(也就是第 jj 只白兔子)所处的位置。所有位置互不相同。

兔王要求:每只红兔子必须与一只白兔子进行配对。由于有些白兔子可能会落单,因此最多会有 MNM - N 只白兔子不能参与舞蹈。

为了保证舞蹈的秩序,配对必须满足以下两个条件:

  1. 防交叉原则:如果红兔子 aa 匹配了白兔子 bb,红兔子 cc 匹配了白兔子 dd,且 Xa<XcX_a < X_c,则必须满足 Yb<YdY_b < Y_d(即连线不能交叉)。
  2. 距离限制原则:为了不让兔子们跑得太远,每一对配对的红白兔子之间的距离 XiYj|X_i - Y_j| 不能超过 LL

在满足上述条件的配对方案中,请编程计算所有配对兔子之间距离之和的最小值。如果不存在任何合法的配对方案,则输出 -1

【输入格式】

输入文件为 dance.in。 第一行包含三个正整数 NNMMLL,分别表示红兔子的数量、白兔子的数量以及最大配对距离。 第二行包含 NN 个正整数,第 ii 个数表示红兔子所在的位置 XiX_i。 第三行包含 MM 个正整数,第 jj 个数表示白兔子所在的位置 YjY_j

【输出格式】

输出文件为 dance.out。 输出一行一个整数,表示所有配对兔子之间距离之和的最小值。若无解输出 -1

【输入输出样例 1】

输入 (dance.in)

3 4 5
1 4 5
3 8 9 10

输出 (dance.out)

10

【数据范围与提示】

  • 对于 30% 的数据:1N1001 \le N \le 1001M1001 \le M \le 100L100L \le 1001Xi,Yj10001 \le X_i, Y_j \le 1000
  • 对于 60% 的数据:1N10001 \le N \le 10001M10001 \le M \le 1000
  • 对于 100% 的数据:1NM50001 \le N \le M \le 50001L1091 \le L \le 10^91Xi,Yj1091 \le X_i, Y_j \le 10^9
  • 提示:本题有 128MB 的内存限制,请关注空间开销。

bb2026-模拟赛合集5

未认领
状态
已结束
题目
12
开始时间
2026-5-30 0:00
截止时间
2026-8-2 23:59
可延期
24 小时