题单练习 双序列型DP入门

A6960 | 信号的最佳共鸣

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

通信兵小李截获了两段加密的数字信号,分别记录为序列 $A$ 和序列 $B$。
序列 $A$ 包含 $N$ 个整数,序列 $B$ 包含 $M$ 个整数。

为了破解密码,小李需要找到这两段信号的“最大共鸣强度”。
具体的计算规则如下:
1. 从序列 $A$ 中挑选出一个子序列(保持原顺序)。
2. 从序列 $B$ 中挑选出一个长度相同的子序列(保持原顺序)。
3. 将这两个子序列对应位置的数字相乘,并将所有乘积相加,得到的结果就是“共鸣强度”。

注意:
  • 选出的子序列不能为空(至少包含 1 个数字)。
  • 你可以删除原序列中的某些数字,但不能改变剩余数字的相对顺序。
请你帮助小李计算出,能够获得的的最大共鸣强度是多少。

输入格式

第一行包含一个整数 $N$,表示序列 $A$ 的长度。
第二行包含 $N$ 个整数,表示序列 $A$ 的内容。
第三行包含一个整数 $M$,表示序列 $B$ 的长度。
第四行包含 $M$ 个整数,表示序列 $B$ 的内容。

输出格式

输出一个整数,表示最大的共鸣强度。

输入输出样例

输入 #1
4
2 1 -2 5
3
3 0 -6
输出 #1
18
输入 #2
2
3 -2
3
2 -6 7
输出 #2
21
输入 #3
2
-1 -1
2
1 1
输出 #3
-1
C++ 编辑器
输入
输出