#THU20241C. 指针

    ID: 26 Type: Default 1000ms 512MiB Tried: 147 Accepted: 17 Difficulty: 9 Uploaded By: Tags>动态规划状态压缩DP搜索搜索与剪枝图结构费用流其他分治清华推研机试考研二分图匹配

指针

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

有 10910^9 台设备分布在一条数轴上,第 ii 台设备的坐标为 ii。有 nn 位维修工,初始时第 ii 位维修工的位置为 aia_i。

这些设备共发生了 mm 次故障,第 jj 次故障的设备为 bjb_j,你需要指定一名维修工维修设备 bjb_j,他将从他当前所在的位置移动到位置 bjb_j。维修工从位置 xx 移动到位置 yy 需要花费 ∣x−y∣|x-y| 的代价。

你需要合理调配维修工,在每次故障发生后及时完成维修,即必须依次完成 mm 次维修。求所有维修的代价总和的最小值。

输入格式

从标准输入读入数据。

输入的第一行包含两个正整数 n,mn,m,分别表示维修工个数和故障次数。

输入的第二行包含 nn 个正整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n,分别表示每个维修工的初始位置。

输入的第三行包含 mm 个正整数 b1,b2,⋯ ,bmb_1,b_2,\cdots,b_m,分别表示每次故障的设备。

输出格式

输出到标准输出。

输出一行一个非负整数表示代价总和的最小值。

2 5
3 6
4 8 1 5 7
11

样例 1 解释

  • 第 11 次维修,维修工 11 移动到位置 44,代价为 ∣3−4∣=1|3-4|=1;
  • 第 22 次维修,维修工 22 移动到位置 88,代价为 ∣6−8∣=2|6-8|=2;
  • 第 33 次维修,维修工 11 移动到位置 11,代价为 ∣4−1∣=3|4-1|=3;
  • 第 44 次维修,维修工 11 移动到位置 55,代价为 ∣1−5∣=4|1-5|=4;
  • 第 55 次维修,维修工 22 移动到位置 77,代价为 ∣8−7∣=1|8-7|=1;

代价总和为 1+2+3+4+1=111+2+3+4+1=11。

子任务

对于所有测试数据,满足 1≤n,m≤600, 1≤ai,bj≤1091\le n,m\le 600,~ 1\le a_i,b_j\le 10^9。

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务编号 分值 n≤n\le m≤m \le ai,bj≤a_i,b_j\le
1 10 1010 66 10510^5
2 22 600600
3 33
4 55 100100 1010
5 25 200200 10510^5
6 35 600600 10910^9