#ATarc149b. [ARC149B] Two LIS Sum

[ARC149B] Two LIS Sum

题目描述

对于数列 P=(P1,,PN)P = (P_1, \ldots, P_N),我们记其最长严格递增子序列的长度为 LIS(P)\mathrm{LIS}(P)

给定两个由 11NN 的整数构成的排列 A=(A1,,AN)A = (A_1, \ldots, A_N)B=(B1,,BN)B = (B_1, \ldots, B_N)。你可以对这两个数列进行如下操作任意多次(也可以一次都不做):

  • 选择一个整数 1iN11 \leq i \leq N-1,交换 AiA_iAi+1A_{i+1},同时交换 BiB_iBi+1B_{i+1}

请你求出通过若干次操作后,LIS(A)+LIS(B)\mathrm{LIS}(A) + \mathrm{LIS}(B) 的最大可能值。

最长递增子序列的定义
数列的子序列是指,从原数列中删除 00 个或多个元素后,按原顺序连接剩下元素得到的新数列。例如,(10,30)(10,30)(10,20,30)(10,20,30) 的子序列,但 (20,10)(20,10) 不是 (10,20,30)(10,20,30) 的子序列。

数列的最长递增子序列是指所有严格递增的子序列中,长度最大的那一个。

输入格式

输入通过标准输入给出,格式如下:

NN A1A_1 \ldots ANA_N B1B_1 \ldots BNB_N

输出格式

请输出通过若干次操作后,LIS(A)+LIS(B)\mathrm{LIS}(A) + \mathrm{LIS}(B) 的最大可能值。

样例 1

输入

5
5 2 1 4 3
3 1 2 5 4

输出

8

样例 2

输入

5
1 2 3 4 5
1 2 3 4 5

输出

10

说明/提示

数据范围

  • 2N3×1052 \leq N \leq 3 \times 10^5
  • 1AiN1 \leq A_i \leq N
  • 1BiN1 \leq B_i \leq N
  • iji \neq j,则 AiAjA_i \neq A_jBiBjB_i \neq B_j

样例解释 1

例如,可以按如下方式操作,使得 LIS(A)+LIS(B)=8\mathrm{LIS}(A) + \mathrm{LIS}(B) = 8

  • i=2i = 2 进行操作。此时 A=(5,1,2,4,3)A = (5,1,2,4,3)B=(3,2,1,5,4)B = (3,2,1,5,4)
  • i=1i = 1 进行操作。此时 A=(1,5,2,4,3)A = (1,5,2,4,3)B=(2,3,1,5,4)B = (2,3,1,5,4)
  • i=4i = 4 进行操作。此时 A=(1,5,2,3,4)A = (1,5,2,3,4)B=(2,3,1,4,5)B = (2,3,1,4,5)

此时 AA 的最长递增子序列为 (1,2,3,4)(1,2,3,4),即 LIS(A)=4\mathrm{LIS}(A) = 4BB 的最长递增子序列为 (2,3,4,5)(2,3,4,5),即 LIS(B)=4\mathrm{LIS}(B) = 4

样例解释 2

如果一次操作都不做,可以得到 LIS(A)+LIS(B)=10\mathrm{LIS}(A) + \mathrm{LIS}(B) = 10

由 ChatGPT 4.1 翻译