Inoi 2016:括号

K. K. 括号的类型,每个类型都有自己的开口支架和关闭支架。我们假设第一对用数字1表示 K. + 1 K + 1, 第二个是2和 K. + 2 k + 2, 等等。因此,开口括号由 1 2 ...... K. 1,2,\ ldots,k, 并且相应的关闭括号表示 K. + 1 K. + 2 ...... 2 K. k + 1,k + 2,\ ldots,2k, 分别。

一些与元素的序列 1 2 ...... 2 K. 1,2,\ ldots,2k 形成良好的序列,而其他人则没有。如果我们可以以下列的方式匹配或配对相同类型的打开括号,则序列是良好的括号。

  1. 每个支架都配对。
  2. 在每个匹配的对中,开口支架发生在关闭支架之前。
  3. 对于匹配对,任何其他匹配的对都是完全在它们之间或外部之间的。

在这个问题中,你被给出了一系列长度的括号 N N B. [ 1 ] ...... B. [ N ] b [1],\ ldots,b [n] ,每个人 B. [ 一世 ] 双] 是一个括号之一。您也给出了一个值数组: V. [ 1 ] ...... V. [ N ] v [1],\ ldots,v [n]

在值阵列中的所有子序列中,使得B阵列中的相应括号子序列是一个良好的括号序列,您需要找到最大总和。

任务:解决上述问题输入。

输入格式

一行,包含 2 × N + 2 (2 \ times n + 2) 空间分隔整数。第一个整数表示 N N。 下一个整数是 K. k。 下一个 N N 整数是 V. [ 1 ] V. [ N ] v [1],...,V [n]。 最后 N N 整数是 B. [ 1 ] B. [ N ] B [1],...,B [n]。

约束

  • 1 ≤. K. ≤. 7. 1 \ LEQ K \ LEQ 7
  • - 1 0. 6. ≤. V. [ 一世 ] ≤. 1 0. 6. -10 ^ 6 \ leq v [i] \ leq 10 ^ 6 , 对全部 一世 一世
  • 1 ≤. B. [ 一世 ] ≤. 2 K. 1 \ Leq B [i] \ Leq 2K , 对全部 一世 一世

说明的例子

  • 对于这里讨论的例子,让我们假设 K. = 2 k = 2 。序列1,1,3不是很好的,因为两个1不能配对之一。序列3,1,3,1,1不是很好地括起来,因为没有办法将第二1匹配到在其之后发生的闭合支架。序列1,2,3,4不是很好地括起来,作为匹配的对2,4既不完全在匹配的对1,3也不完全在其外部。也就是说,匹配的对不能重叠。序列1,2,4,3,1,3是均匀的。我们将第一个1与第3个,2,第二个与第二个1匹配,符合第二个3,满足所有3条条件。如果使用分别使用[,],}而不是1,2,3,4重写这些序列,这将非常清晰。

  • 认为 N = 6. K. = 3. n = 6,k = 3, 和价值观 V. V. B. B. 如下面所述:然后,位置1,3中的括号形成良好的括号序列(1,4),并且这些位置中的值的总和为2(4 +(-2)= 2)。位置1,3,4,5的支架形成良好的括号序列(1,4,2,5),并且这些位置的值的总和为4.最后,位置2,4,5中的括号,6形成良好的括号序列(3,2,5,6),并且这些位置中的值的总和为13.位置1,2,5,6的值的总和为16,但是这些位置中的括号(1,3,5,6)不形成均匀括号的序列。您可以检查括号内括号序列的位置的最佳总和是13。

×

问题加载......

注意加载......

设置加载......