题意
$n(2\le n\le 4e5)$ 个物品,每个的颜色为 $a_i(1\le a_i\le 20)$ ,仅允许将相邻的物品两两交换,问使得相同颜色的物品聚集到一起的最小花费
题解
预处理 $tran[i][j]$ 表示仅考虑颜色 $i,j$ 时,将所有颜色为 $i$ 的物品移到所有颜色为 $j$ 的物品前面的花费,然后再使用状压 $dp$
代码
1 |
|
$n(2\le n\le 4e5)$ 个物品,每个的颜色为 $a_i(1\le a_i\le 20)$ ,仅允许将相邻的物品两两交换,问使得相同颜色的物品聚集到一起的最小花费
预处理 $tran[i][j]$ 表示仅考虑颜色 $i,j$ 时,将所有颜色为 $i$ 的物品移到所有颜色为 $j$ 的物品前面的花费,然后再使用状压 $dp$
1 | #include <bits/stdc++.h> |