陣列的最大代價
陣列A包含N個元素A1, A2......AN。陣列B包含N個元素B1, B2......BN。並且陣列A中的每一個元素Ai,都滿足1 <= Ai <= Bi。陣列A的代價定義如下:
(公式表示所有兩個相鄰元素的差的絕對值之和)
給出陣列B,計算可能的最大代價S。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int fun(vector<int> &B, int N)
{
int dp[N][2];
dp[0][0] = 0;
dp[0][1] = 0;
for (int i = 1; i < N; i++)
{
dp[i][0] = max(dp[i-1][0], dp[i-1][1] + B[i-1] - 1);
dp[i][1] = max(dp[i-1][0] + B[i] - 1, dp[i-1][1] + abs(B[i]-B[i-1]));
}
return max(dp[N-1][0], dp[N-1][1]);
}
int main()
{
int N;
scanf("%d", &N);
vector<int> B;
int a;
for (int i = 0; i < N; i++)
{
scanf("%d", &a);
B.push_back(a);
}
cout << fun(B, N) << endl;
return 0;
}
相關文章
- 【dp】51nod 1270 陣列的最大代價陣列
- 陣列1——求一個陣列的最大子陣列陣列
- 求子陣列的最大和陣列
- 求二維陣列中最大子陣列的和陣列
- JavaScript 陣列最大值JavaScript陣列
- C 陣列最大值陣列
- 連續子陣列的最大和陣列
- 求子陣列的最大和問題陣列
- 最大子陣列和問題的解陣列
- 視窗最大值陣列陣列
- 一維子陣列最大和陣列
- 53. 最大子陣列和陣列
- 【DP】乘積最大子陣列陣列
- 最大連續子陣列和(最大子段和)陣列
- 子陣列的最大異或和問題陣列
- 遞迴求解陣列中的最大值遞迴陣列
- 最大連續子陣列和的實現陣列
- 演算法陣列中降序數列的最大長度演算法陣列
- js獲取 陣列最大/小值JS陣列
- 迴圈陣列最大子段和陣列
- 廉價冗餘磁碟陣列陣列
- 給定陣列中找到最大的兩個數陣列
- js如何獲取陣列中的最大值JS陣列
- 【劍指offer】連續子陣列的最大和陣列
- 演算法學習-零子陣列,最大連續子陣列演算法陣列
- JavaScript 獲取陣列中最大值JavaScript陣列
- JavaScript 陣列排序 與 求最大值JavaScript陣列排序
- 最大子陣列問題(Maximum subarray problem)陣列
- [待]生成視窗最大值陣列陣列
- Maximum Subarray 連續子陣列最大和陣列
- 【力扣】最大子陣列和(貪心)力扣陣列
- 第四章:多維陣列和矩陣 ------------- 4.7 子陣列最大累加和陣列矩陣
- 陣列呼叫c#讀取陣列中獲取最大最小值方法陣列C#
- JZ-030-連續子陣列的最大和陣列
- LeetCode 410——分割陣列的最大值LeetCode陣列
- 牛客題霸--連續子陣列的最大和陣列
- 每日一練(22):連續子陣列的最大和陣列
- JavaScript陣列中的最大值和最小值JavaScript陣列