在一条数轴上,有 $n$ 只老鼠和 $m$ 个老鼠洞。
Q1
每只老鼠都只能往左走,求所有老鼠都进洞的最小代价(代价就是所有老鼠走的距离和)。
每个洞只能进一只老鼠。
A1
一开始陈江伦老师没说每个洞只能进一只老鼠,然后有个初中小同学上台装 $B$,说了每个洞不限老鼠的做法……(那不是弱智题么)
虽然现在这道题还是很简单,贪心或 $dp$ 都行。
($dp$ 的话,设 $f_{i,j}$ 表示前 $i$ 个老鼠和洞中,有 $j$ 个洞匹配了老鼠的最小代价)
Q2
问题同上,去掉老鼠只能往左走的限制。
A2
因为匹配不会相交(相交的匹配一定跟某个不相交的匹配等价
把老鼠往右走当做洞往左走。
$f_{i,j}$ 的 $j$ 可以为负数,表示还有 $-j$ 个老鼠需要匹配 $i$ 之后的洞。
如果 $i$ 为老鼠:$f_{i,j}=f_{i-1,j+1}+x_i\times [j\ge 0]-x_i\times [j\lt 0]$
如果 $i$ 为洞:$f_{i,j}=\min(f_{i-1,j},f_{i-1,j-1}+y_i\times [j\le 0]-y_i\times [j\gt 0]$