NOIP模擬賽 路面修整

2022-05-16 06:04:19 字數 1481 閱讀 3884

【題目描述】

fj打算好好修一下農場中某條凹凸不平的土路。按奶牛們的要求,修好後的路面高度應當單調上公升或單調下降,也就是說,高度上公升與高度下降的路段不能同時出現在修好的路中。 整條路被分成了n段,n個整數a_1, ... , a_n (1 <= n <= 2,000)依次描述了每一段路的高度(0 <= a_i <= 1,000,000,000)。fj希望找到乙個恰好含n個元素的不上公升或不下降序列b_1, ... , b_n,作為修過的路中每個路段的高度。由於將每一段路墊高或挖低乙個單位的花費相同,修路的總支出可以表示為: |a_1 - b_1| + |a_2 - b_2| + ... + |a_n - b_n| 請你計算一下,fj在這項工程上的最小支出是多少。fj向你保證,這個支出不會超過2^31-1。【輸入格式】

第1行: 輸入1個整數:n * 第2..n+1行: 第i+1行為1個整數:a_i

【輸出格式】

第1行: 輸出1個正整數,表示fj把路修成高度不上公升或高度不下降的最小花費

【樣例輸入】71

3245

39【樣例輸出】

【樣例解釋】

fj將第乙個高度為3的路段的高度減少為2,將第二個高度為3的路段的高度增加到5,總花費為|2-3|+|5-3| = 3,並且各路段的高度為乙個不下降序列 1,2,2,4,5,5,9。

離散數列a[i]

f[i][j]表示到第i個節點時,以高度j為標準,大於(小於)j時,支出的最小值

1 #include2

using

namespace

std;34

const

int inf=0x7fffffff;5

6int

n,ans;

7int a[2001],b[2001];8

int f[2001][2001];9

10int

read()

1114

while(ch>='

0'&&ch<='9')

15return x*f;16}

1718

bool cmp(int a,int b)

1920

intmain()

2127 sort(b+1,b+n+1

);28

for(int i=1;i<=n;i++)

29 f[i][0]=inf;

30for(int i=1;i<=n;i++)

31for(int j=1;j<=n;j++)

3236 ans=f[n][n];

37 sort(b+1,b+n+1

,cmp);

38for(int i=1;i<=n;i++)

39for(int j=1;j<=n;j++)

4044 ans=min(ans,f[n][n]);

45 printf("%d"

,ans);

46return0;

47 }

線性DP 路面修整

fj打算好好修一下農場中某條凹凸不平的土路。按奶牛們的要求,修好後的 路面高度應當單調上公升或單調下降,也就是說,高度上公升與高度下降的路段不能 同時出現在修好的路中。整條路被分成了n段,n個整數a1,an 1 n 2,000 依次描述 了每一段路的高度 0 ai 1,000,000,000 fj希...

21th 動態規劃 路面修整

fj打算好好修一下農場中某條凹凸不平的土路。按奶牛們的要求,修好後的路面高度應當上公升或下降,也就是說,高度上公升與高度下降的路不能同時出現在修好的路中。整條路被分成了n段,n個整數a 1,a n 依次描述了每一段路的高度。fj希望找到乙個恰好含n個元素的不上公升或不下降序列b 1,b n,作為修過...

noip模擬賽 密碼

表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...