CF387E George and Cards
题目描述
George 是一只猫,因此他非常喜欢玩耍。
Vitaly 在 George 面前依次排放了 $n$ 张卡牌。每张卡牌上写有一个整数。所有卡牌上的数字都不相同。我们将这些卡牌从左到右编号为 $1$ 到 $n$。第 $i$ 张卡牌上写着数字 $p_i$($1 \leq p_i \leq n$)。
Vitaly 希望最后桌上只剩下恰好 $k$ 张卡牌,而且希望从左到右第 $i$ 张卡牌上的数字为 $b_i$。他给 George 布置了任务:让他用移除操作恰好 $n-k$ 次,得到目标序列。
在一次移除操作中,George 可以选择 $w$ 张连续的卡牌(一个连续子区间,$1 \leq w$ 且 $w$ 不大于当前卡牌总数)。记这些牌上的数字为 $x_1, x_2, \ldots, x_w$(从左到右)。随后,George 可以移除 $x_i$,其中 $x_i \leq x_j$ 对所有 $j$ 成立($1 \leq j \leq w$),即移除该区间中的最小值。每进行一次这样的操作,George 就能得到 $w$ 块香肠。
George 很好奇:如果他要达成目标并且每步都采取最优策略,总共最多能得到多少块香肠?请你帮 George 找到答案!
输入格式
第一行包含两个整数 $n$ 和 $k$($1 \leq k \leq n \leq 10^{6}$)——初始化和最终的卡牌数。
第二行包含 $n$ 个互不相同的空格分隔的整数 $p_1, p_2, \ldots, p_n$($1 \leq p_i \leq n$)——初始卡牌排列。
第三行包含 $k$ 个空格分隔的整数 $b_1, b_2, \ldots, b_k$ ——你需要得到的目标卡牌排列。保证通过进行 $n - k$ 次移除操作,一定可以得到给定的目标序列。
输出格式
输出一个整数——如果 George 每一步都采取最优策略,他最多能得到多少块香肠。
说明/提示
由 ChatGPT 5 翻译