P14112 [ZJCPC 2017] Sequence to Sequence
题目描述
Chiaki 有一个序列 $s_1, s_2, \dots, s_n$。她希望通过以下操作将其变为另一个序列 $t_1, t_2, \dots, t_n$:
- 选择两个下标 $l$ 和 $r$($l \le r$),并将区间 $[l, r]$ 内的每一个非零元素加 $1$。
- 选择两个下标 $l$ 和 $r$($l \le r$),并将区间 $[l, r]$ 内的每一个非零元素减 $1$。
Chiaki 想知道,将序列 $s$ 变为 $t$ 所需的最少操作数是多少。
输入格式
输入包含多组数据。第一行为一个整数 $T$,表示测试用例的数量。对于每组测试用例:
第一行包含一个整数 $n$($1 \le n \le 10^5$),表示序列的长度。
第二行包含 $n$ 个整数 $s_1, s_2, \dots, s_n$($0 \le s_i \le 10^9$)。
第三行包含 $n$ 个整数 $t_1, t_2, \dots, t_n$($0 \le t_i \le 10^9$)。
保证所有测试用例中 $\sum n \le 10^6$。
输出格式
对于每个测试用例,输出一个整数表示最少的操作次数。如果无法将 $s$ 变为 $t$,则输出 $-1$。
说明/提示
对于第一个测试用例:$\{1,1,1,1,1\} \xrightarrow{[2,2],\ -1} \{1,0,1,1,1\} \xrightarrow{[4,4],\ -1} \{1,0,1,0,1\} \xrightarrow{[1,5],\ +1} \{2, 0, 2, 0, 2\}$。
由 ChatGPT 5 翻译