数组的最大代价
题面
题目描述
数组A包含N个元素A1, A2…AN。数组B包含N个元素B1, B2…BN。
并且数组A中的每一个元素Ai,都满足1 <= Ai <= Bi。数组A的代价定义如下:
(公式表示所有两个相邻元素的差的绝对值之和)
给出数组B,计算可能的最大代价S。
输入
第1行:1个数N,表示数组的长度(1 <= N <= 50000)。
第2 - N+1行:每行1个数,对应数组元素Bi(1 <= Bi <= 10000)。
输出
输出最大代价S。
输入样例
5
10
1
10
1
10
输出样例
36
题解
暴力算法
设 f [ i ] [ j ] f[i][j] f[i][j]为前i个数,第i个数为j的最大代价。
则 f [ i ] [ j ] = m a x ( f [ i − 1 ] [ k ] + ∣ j − k ∣ ) f[i][j]=max(f[i-1][k]+|j-k|) f[i][j]=max(f[i−1][k]+∣j−k∣)
时间复杂度 O ( n 3 ) O(n^3) O(n3