AT_arc149_b [ARC149B] Two LIS Sum
题目描述
对于数列 $P = (P_1, \ldots, P_N)$,我们记其最长严格递增子序列的长度为 $\mathrm{LIS}(P)$。
给定两个由 $1$ 到 $N$ 的整数构成的排列 $A = (A_1, \ldots, A_N)$ 和 $B = (B_1, \ldots, B_N)$。你可以对这两个数列进行如下操作任意多次(也可以一次都不做):
- 选择一个整数 $1 \leq i \leq N-1$,交换 $A_i$ 与 $A_{i+1}$,同时交换 $B_i$ 与 $B_{i+1}$。
请你求出通过若干次操作后,$\mathrm{LIS}(A) + \mathrm{LIS}(B)$ 的最大可能值。
**最长递增子序列的定义**
数列的子序列是指,从原数列中删除 $0$ 个或多个元素后,按原顺序连接剩下元素得到的新数列。例如,$(10,30)$ 是 $(10,20,30)$ 的子序列,但 $(20,10)$ 不是 $(10,20,30)$ 的子序列。
数列的最长递增子序列是指所有严格递增的子序列中,长度最大的那一个。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $A_1$ $\ldots$ $A_N$ $B_1$ $\ldots$ $B_N$
输出格式
请输出通过若干次操作后,$\mathrm{LIS}(A) + \mathrm{LIS}(B)$ 的最大可能值。
说明/提示
## 数据范围
- $2 \leq N \leq 3 \times 10^5$
- $1 \leq A_i \leq N$
- $1 \leq B_i \leq N$
- 若 $i \neq j$,则 $A_i \neq A_j$ 且 $B_i \neq B_j$
## 样例解释 1
例如,可以按如下方式操作,使得 $\mathrm{LIS}(A) + \mathrm{LIS}(B) = 8$:
- 以 $i = 2$ 进行操作。此时 $A = (5,1,2,4,3)$,$B = (3,2,1,5,4)$。
- 以 $i = 1$ 进行操作。此时 $A = (1,5,2,4,3)$,$B = (2,3,1,5,4)$。
- 以 $i = 4$ 进行操作。此时 $A = (1,5,2,3,4)$,$B = (2,3,1,4,5)$。
此时 $A$ 的最长递增子序列为 $(1,2,3,4)$,即 $\mathrm{LIS}(A) = 4$。$B$ 的最长递增子序列为 $(2,3,4,5)$,即 $\mathrm{LIS}(B) = 4$。
## 样例解释 2
如果一次操作都不做,可以得到 $\mathrm{LIS}(A) + \mathrm{LIS}(B) = 10$。
由 ChatGPT 4.1 翻译