AT_agc077_f [AGC077F] Two Types of Tasks

题目描述

有 $N$ 个工作,编号为 $1$ 到 $N$,你需要在 $N$ 天内完成这些工作。你每天恰好完成一个工作。 第 $i$ 个工作可以在第 $L_i$ 天到第 $R_i$ 天之间的任意一天被完成。这里,$L_i$ 和 $R_i$ 满足以下条件: - $1 \leq L_i \leq i \leq R_i \leq N$ - $1 \leq L_1 \leq L_2 \leq \cdots \leq L_N \leq N$ - $1 \leq R_1 \leq R_2 \leq \cdots \leq R_N \leq N$ 特别地,由于第一个条件,可以保证可以在 $N$ 天内完成所有 $N$ 个工作。 此外,每个工作有一个类型,初始时均为 `R` 类型。 完成一个工作的花费定义如下: - 假设第 $i$ 个工作安排在第 $x_i$ 天完成。如果该工作是 `L` 类型,则花费为 $x_i-L_i$;如果该工作是 `R` 类型,则花费为 $R_i-x_i$。 接下来有 $N$ 次操作,每次操作将某个工作的类型改为 `L`。第 $i$ 次操作会将编号为 $P_i$ 的工作的类型改为 `L`。 对于每个 $k=0,1,\ldots,N$,解决以下问题: - 考虑前 $k$ 次操作完成后的状态,求所有 $N$ 个工作总花费的最小值。

输入格式

输入从标准输入给出,格式如下: > $N$ $L_1$ $R_1$ $L_2$ $R_2$ $\vdots$ $L_N$ $R_N$ $P_1$ $P_2$ $\ldots$ $P_N$

输出格式

对于每个 $k=0,1,2,\ldots,N$,按顺序输出答案,之间用空格分隔。

说明/提示

### 样例解释 1 每个 $k$ 的最优排班方案如下: - $k=0$:分别在第 $1,2,3$ 天安排工作 $1,2,3$,总花费为 $(3-1)+(3-2)+(3-3)=3$。 - $k=1$:分别在第 $2,1,3$ 天安排工作 $1,2,3$,总花费为 $(3-2)+(1-1)+(3-3)=1$。 - $k=2$:分别在第 $1,2,3$ 天安排工作 $1,2,3$,总花费为 $(1-1)+(2-1)+(3-3)=1$。 - $k=3$:分别在第 $1,2,3$ 天安排工作 $1,2,3$,总花费为 $(1-1)+(2-1)+(3-2)=2$。 ### 数据范围 - $1 \leq N \leq 10^6$ - $1 \leq L_i \leq i \leq R_i \leq N$ - $1 \leq L_1 \leq L_2 \leq \cdots \leq L_N \leq N$ - $1 \leq R_1 \leq R_2 \leq \cdots \leq R_N \leq N$ - $(P_1,P_2,\ldots,P_N)$ 是 $1$ 到 $N$ 的一个排列。 - 输入的所有数均为整数。 由 ChatGPT 5 翻译