AT_agc070_d [AGC070D] 2D Solitaire
题目描述
给定正整数 $N$ 和 $K$,还有两个排列 $A=(A_1, A_2, \dots, A_{N+K})$ 和 $B=(B_1, B_2, \dots, B_{N+K})$。你需要处理 $Q$ 个独立的查询。
每个查询都会给出一个整数对 $(X, Y)$,你的任务是解决以下问题:
> 假设有从编号 $1$ 到 $N + K + X$ 的 $N + K + X$ 张卡牌,其中每张卡牌上都有一个整数对:
>
> - 对于 $1 \leq i \leq N+K$,卡牌 $i$ 上的整数对为 $(A_i, B_i)$;
> - 对于 $N + K + 1 \leq i \leq N + K + X$,卡牌 $i$ 上的整数对为 $(i, Y)$。
>
> 你一开始持有编号 $1$ 到 $N$ 的 $N$ 张卡牌,而编号从 $N+1$ 到 $N+K+X$ 的 $K+X$ 张卡牌放在场上。
>
> 你可以进行以下操作任意次数:
>
> - 从持有的卡牌中选一张卡片 $i$,从场上选一张卡片 $j$,两个卡片编号需满足以下条件:
> - 持有的卡片 $i$ 上的整数对是 $(a_i, b_i)$,场上的卡片 $j$ 上的整数对是 $(a_j, b_j)$,并且 $a_i < a_j$ 且 $b_i < b_j$。
> - 然后,移除场上的卡片 $j$,将卡片 $i$ 放到场上。(移除的卡片不能再使用。)
>
> 你需要通过上述操作,使持有的卡片数量达到最少,最少能达到多少?
输入格式
输入包含一行,按以下格式给出:
> $N\ K\ Q\ A_1\ A_2\ \ldots\ A_{N+K}\ B_1\ B_2\ \ldots\ B_{N+K}\ \text{查询}_1\ \text{查询}_2\ \ldots\ \text{查询}_Q$
每个查询的格式如下:
> $X\ Y$
输出格式
输出 $Q$ 行,每行一个整数,第 $i$ 行表示第 $i$ 个查询的答案。
说明/提示
- $1 \leq N \leq 200,000$
- $1 \leq K \leq 10$
- $1 \leq Q \leq 200,000$
- $1 \leq A_i \leq N + K$
- $1 \leq B_i \leq N + K$
- $A$ 和 $B$ 都是 $(1, 2, \dots, N+K)$ 的排列
- $1 \leq X \leq 10$
- $1 \leq Y \leq N + K$
- 所有输入均为整数
### 示例解释
以第二个查询 $(X, Y) = (2, 2)$ 为例:
- 初始持有的卡片为:$(1, 4), (2, 2), (3, 5), (4, 1), (6, 6)$
- 场上的卡牌为:$(5, 3), (7, 2), (8, 2)$
通过以下操作,可将持有的卡牌减少到 $3$ 张,且不能再少:
- 选择持有的卡片 $(2, 2)$ 和场上的卡片 $(5, 3)$,执行操作后:
- 持有的卡片变为:$(1, 4), (3, 5), (4, 1), (6, 6)$
- 场上的卡片变为:$(2, 2), (7, 2), (8, 2)$
- 再选择持有的卡片 $(4, 1)$ 和场上的卡片 $(8, 2)$,执行操作后:
- 持有的卡片变为:$(1, 4), (3, 5), (6, 6)$
- 场上的卡片变为:$(2, 2), (7, 2), (4, 1)$
**本翻译由 AI 自动生成**