AT_abc232_f [ABC232F] Simple Operations on Sequence
题目描述
给定两个长度为 $N$ 的整数序列 $A = (A_1, A_2, \ldots, A_N)$ 和 $B = (B_1, B_2, \ldots, B_N)$。
对于整数序列 $A$,你可以任意次数(可以为 $0$ 次)重复执行以下两种操作之一:
- 选择满足 $1 \leq i \leq N$ 的整数 $i$,将 $A_i$ 的值加 $1$ 或减 $1$。该操作需要花费 $X$ 日元。
- 选择满足 $1 \leq i \leq N-1$ 的整数 $i$,交换 $A_i$ 和 $A_{i+1}$ 的值。该操作需要花费 $Y$ 日元。
通过上述操作,将整数序列 $A$ 变为与整数序列 $B$ 完全一致时,所需的最小总费用是多少?
输入格式
输入以如下格式从标准输入给出。
> $N$ $X$ $Y$ $A_1$ $A_2$ $\ldots$ $A_N$ $B_1$ $B_2$ $\ldots$ $B_N$
输出格式
输出将 $A$ 变为 $B$ 所需的最小总费用。
说明/提示
## 限制条件
- $2 \leq N \leq 18$
- $1 \leq X \leq 10^8$
- $1 \leq Y \leq 10^{16}$
- $1 \leq A_i, B_i \leq 10^8$
- 所有输入均为整数
## 样例解释 1
初始时,$A = (4, 2, 5, 2)$。可以按如下方式进行操作,使 $A$ 变为 $B$:
- 支付 $X = 3$ 日元,将 $A_3$ 的值加 $1$。此时 $A = (4, 2, 6, 2)$。
- 支付 $Y = 5$ 日元,交换 $A_2$ 和 $A_3$ 的值。此时 $A = (4, 6, 2, 2)$。
- 支付 $Y = 5$ 日元,交换 $A_1$ 和 $A_2$ 的值。此时 $A = (6, 4, 2, 2)$。
- 支付 $X = 3$ 日元,将 $A_4$ 的值减 $1$。此时 $A = (6, 4, 2, 1) = B$。
上述操作的总费用为 $3 + 5 + 5 + 3 = 16$ 日元,这是最小值。
## 样例解释 2
$A$ 和 $B$ 从一开始就完全一致,因此无需进行任何操作。
## 样例解释 3
请注意,输入或输出可能超出 $32$ 位整数范围。
由 ChatGPT 4.1 翻译