陣列的最大代價

2021-08-22 13:37:44 字數 927 閱讀 2021

陣列的最大代價

陣列a包含n個元素a1, a2......an。陣列b包含n個元素b1, b2......bn。並且陣列a中的每乙個元素ai,都滿足1 <= ai <= bi。陣列a的代價定義如下:

(公式表示所有兩個相鄰元素的差的絕對值之和)

給出陣列b,計算可能的最大代價s。

input

第1行:1個數n,表示陣列的長度(1 <= n <= 50000)。 

第2 - n+1行:每行1個數,對應陣列元素bi(1 <= bi <= 10000)。

output

輸出最大代價s。

sample input

5
10 1 10 1 10

sample output

36
題解:令k=前i個數的最大代價 

則前i+1個數的最大代價=max(abs(b[i+1]-a[i]),a[i]-1)+k;

所以 對於最優解 a[i]必定取1或b[i]

所有最大代價的結果 a[i]都是取b[i]或者1

所以dp一下 o(n)複雜度就可以解決

dp[i][1]=前i個數中 第i個數為b[i]時的最大代價

dp[i][0]=前i個數中 第i個數為1時的最大代價

**:

#include#include#includeusing namespace std;

int a[60000],dp[60000][3];

int main()

printf("%d\n",max(dp[n][0],dp[n][1]));

}}

陣列的最大代價

陣列a包含n個元素a1,a2.an。陣列b包含n個元素b1,b2.bn。並且陣列a中的每乙個元素ai,都滿足1 ai bi。陣列a的代價定義如下 公式表示所有兩個相鄰元素的差的絕對值之和 給出陣列b,計算可能的最大代價s。input 第1行 1個數n,表示陣列的長度 1 n 50000 第2 n 1...

陣列的最大代價

題目 陣列a包含n個元素a1,a2.an。陣列b包含n個元素b1,b2.bn。並且陣列a中的每乙個元素ai,都滿足1 ai bi。陣列a的代價定義如下 公式表示所有兩個相鄰元素的差的絕對值之和 給出陣列b,計算可能的最大代價s。input 第1行 1個數n,表示陣列的長度 1 n 50000 第2 ...

1270 陣列的最大代價(貪心,dp

陣列a包含n個元素a1,a2 an。陣列b包含n個元素b1,b2 bn。並且陣列a中的每乙個元素ai,都滿足1 ai bi。陣列a的代價定義如下 輸入第1行 1個數n,表示陣列的長度 1 n 50000 第2 n 1行 每行1個數,對應陣列元素bi 1 bi 10000 輸出輸出最大代價s。輸入樣例...