AT_arc200_c [ARC200C] Movie Theater
题目描述
给定正整数 $N$ 和长度为 $N$ 的正整数序列 $L=(L_1,L_2,\ldots,L_N),R=(R_1,R_2,\ldots,R_N)$。这里保证 $L_1,L_2,\ldots,L_N,R_1,R_2,\ldots,R_N$ 互不相同。
某电影院有 $N$ 个座位,左右排成一行。从左到右第 $i$ 个座位称为座位 $i$。
有 $N$ 个人(编号 $1$ 到 $N$)来到电影院。你需要为每个人分配一个座位。若将第 $i$ 个人分配到座位 $P_i$,则第 $i$ 个人会在时刻 $L_i$ 经过座位 $1,2,\ldots,P_i-1$ 并坐到座位 $P_i$,在时刻 $R_i$ 经过座位 $1,2,\ldots,P_i-1$ 离开座位。
第 $i$ 个人的**不满度**定义为在时刻 $L_i$ 到 $R_i$ 之间(不包括 $L_i,R_i$)被其他人经过座位 $P_i$ 的次数。
请你在所有使 $1,2,\ldots,N$ 的排列 $P$ 中,找到总不满度最小且字典序最小的 $P$。
有 $T$ 组测试数据,请分别输出答案。
输入格式
输入按以下格式从标准输入读入。
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组测试数据格式如下:
> $N$
> $L_1$ $R_1$
> $L_2$ $R_2$
> $\vdots$
> $L_N$ $R_N$
输出格式
输出 $T$ 行。
第 $i$ 行输出第 $i$ 组测试数据中,使所有人的不满度总和最小且字典序最小的排列 $P$,用空格分隔。
说明/提示
### 数据范围
- $1\leq T\leq 500$
- $1\leq N\leq 500$
- $1\leq L_i < R_i \leq 2N$
- $L_1,L_2,\ldots,L_N,R_1,R_2,\ldots,R_N$ 互不相同
- 所有测试数据中 $N$ 的总和不超过 $500$
- 输入的所有值均为整数
### 样例解释 1
对于第 $1$ 组测试数据,若 $P=(2,1,3)$,过程如下:
- 时刻 $1$:第 $1$ 个人坐到座位 $2$。
- 时刻 $2$:第 $2$ 个人坐到座位 $1$。
- 时刻 $3$:第 $2$ 个人离开座位 $1$。
- 时刻 $4$:第 $3$ 个人坐到座位 $3$,第 $1$ 个人的不满度增加 $1$。
- 时刻 $5$:第 $1$ 个人离开座位 $2$。
- 时刻 $6$:第 $3$ 个人离开座位 $3$。
此时总不满度为 $1$。无法使总不满度小于 $1$,且 $P=(2,1,3)$ 是所有总不满度为 $1$ 的排列中字典序最小的。因此答案为 $P=(2,1,3)$。
对于第 $2$ 组测试数据,无论如何分配,所有人的总不满度都是 $6$。
由 ChatGPT 4.1 翻译