删数
Description
有N個不同的正整數(shù)數(shù)x1, x2, … xN 排成一排,我們可以從左邊或右邊去掉連續(xù)的i個數(shù)(只能從兩邊刪除數(shù)),1<=i<=n,剩下N-i個數(shù),再把剩下的數(shù)按以上操作處理,直到所有的數(shù)都被刪除為止。 每次操作都有一個操作價值,比如現(xiàn)在要刪除從i位置到k位置上的所有的數(shù)。操作價值為|xi – xk|*(k-i+1),如果只去掉一個數(shù),操作價值為這個數(shù)的值。 任務(wù):如何操作可以得到最大值,求操作的最大價值。
Input
輸入文件的第一行為一個正整數(shù)N,第二行有N個用空格隔開的N個不同的正整數(shù)。
Output
輸出文件包含一個正整數(shù),為操作的最大值
Sample Input
6
54 29 196 21 133 118
Sample Output
768
Data Constraint
【數(shù)據(jù)范圍】 3<=N<=100 N個操作數(shù)為1..1000 之間的整數(shù)。
Hint
【樣例解釋】
經(jīng)過3 次操作可以得到最大值,第一次去掉前面3個數(shù)54、29、196,操作價值為426。第二次操作是在剩下的三個數(shù)(21 133 118)中去掉最后一個數(shù)118,操作價值為118。第三次操作去掉剩下的2個數(shù)21和133 ,操作價值為224。操作總價值為426+118+224=768。
·
·
·
·
·
·
·
·
·
分析
因為從左刪和從右刪都是一樣的,所以直接從左往右取
等同于求將n個數(shù)字分成若干組的最大價值
f[i]表示前i項的最大獲益
f[i]=max(f[j?1]+|a[j]?a[i]|?(i?j+1))
f[i]=max(f[i],f[i?1]+a[i])
.
.
.
.
.
.
.
.
程序:
轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9499999.html
總結(jié)