首页 > 试题广场 >

取数游戏

[编程题]取数游戏
  • 热度指数:356 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值 ,现在希望你求出 的最大值。

数据范围: ,
示例1

输入

[1,1000],[2,1]

输出

2001
示例2

输入

[1,3,5,2,4],[1,2,3,4,5]

输出

52

说明

第一次从左边取走a1,v1=a1⋅b1=1,
第二次从左边取走a2,v2=a2⋅b2=6,
第三次从右边取走a5,v3=a5⋅b3=12,
第四次从右边取走a4,v4=a4⋅b4=8,
第五次取走剩下的a3,v5=a3⋅b5=25。
总价值∑vi=1+6+12+8+25=52

这道题你会答吗?花几分钟告诉大家答案吧!