CF1495F Squares

题目描述

地板上从左到右画有 $n$ 个方格。第 $i$ 个方格上写有三个整数 $p_i, a_i, b_i$。序列 $p_1, p_2, \dots, p_n$ 构成一个排列。 每一轮你都从最左边的第 $1$ 个方格出发,向右跳跃。如果你现在在第 $i$ 个方格上,你可以进行以下两种操作之一: 1. 跳到第 $i+1$ 个方格,并支付代价 $a_i$。如果 $i=n$,则可以结束本轮并支付代价 $a_i$。 2. 跳到第 $j$ 个方格,并支付代价 $b_i$,其中 $j$ 是满足 $j>i$ 且 $p_j>p_i$ 的最左边的方格。如果不存在这样的 $j$,则可以结束本轮并支付代价 $b_i$。 游戏共有 $q$ 轮。为了增加难度,你需要维护一个方格集合 $S$(初始为空)。你必须在本轮经过集合 $S$ 中的所有方格(也可以经过其他方格)。第 $i$ 轮的集合 $S$ 是通过在第 $i-1$ 轮的集合基础上添加或移除一个方格得到的。 对于每一轮,求出你完成本轮所需支付的最小代价。

输入格式

第一行包含两个整数 $n, q$($1\le n, q\le 2 \cdot 10^5$)——方格数量和轮数。 第二行包含 $n$ 个互不相同的整数 $p_1, p_2, \dots, p_n$($1\le p_i\le n$)。保证序列 $p_1, p_2, \dots, p_n$ 是一个排列。 第三行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($-10^9\le a_i\le 10^9$)。 第四行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($-10^9\le b_i\le 10^9$)。 接下来 $q$ 行,每行包含一个整数 $x_i$($1\le x_i\le n$)。如果 $x_i$ 在第 $i-1$ 轮的集合 $S$ 中,则将其移除,否则将其加入。

输出格式

输出 $q$ 行,每行一个整数,表示完成对应轮所需支付的最小代价。

说明/提示

我们可以将字符 $T$ 视为一轮的结束。对于前两个测试,可以画出如下两张图。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1495F/52e3a6c2b2c185ce4445eee8fb846bafc8bfd27b.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1495F/5a03381104563084e264259f78caac374e03546b.png) 在第一个测试的第一轮,必须经过的集合为 $\{1\}$。可行路径为 $1\to 3\to T$,总代价为 $6$。 在第一个测试的第二轮,必须经过的集合为 $\{1,2\}$。可行路径为 $1\to 2\to 3\to T$,总代价为 $8$。 由 ChatGPT 4.1 翻译