刪數 (Standard IO)
生活随笔
收集整理的這篇文章主要介紹了
刪數 (Standard IO)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Description
小明現(xiàn)在有n個不同的正整數(shù) X1,X2,…Xn排成一行。
小明每次可以將左邊或右邊刪掉連續(xù)的若干個數(shù)(只能從兩邊刪數(shù))。
每次刪數(shù)可以得到一個值,若刪除從i到j(luò)的數(shù)(i<j),則得到的價值為|Xi-Xj|*(j-i+1)。
若只刪除一個數(shù)(i=j),則得到的價值為Xi。
現(xiàn)在小明想使得到的價值總和最大,請你幫他計算一下,這個最大值是多少?
Input
第一行一個整數(shù)n。
第二行n個整數(shù),表示X。
Output
?
輸出僅一行一個整數(shù),表示能得到的最大價值。
?
題解
?
大家要的公式:
f[i]=max(f[i],f[j?1]+abs(a[j]?a[i])?(i?j+1))
?
代碼
?
varn:longint;a,f:array[0..5001] of longint; procedure init; vari:longint; beginreadln(n);for i:=1 to n doread(a[i]); end;procedure main; vari,j:longint; beginf[1]:=a[1];for i:=2 to n dobeginfor j:=1 to i-1 doif f[i]<f[j-1]+abs(a[j]-a[i])*(i-j+1)thenf[i]:=f[j-1]+abs(a[j]-a[i])*(i-j+1);if f[i-1]+a[i]>f[i]then f[i]:=f[i-1]+a[i];end; end;begininit;main;write(f[n]); end.轉(zhuǎn)載于:https://www.cnblogs.com/zyx-crying/p/9319616.html
總結(jié)
以上是生活随笔為你收集整理的刪數 (Standard IO)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python+Selenium WebD
- 下一篇: [ An Ac a Day ^_^ ]