問題描述
我的某室友學過素描,牆上有 n 張他的作品。
這些作品都是寬度為 1,高度不定的矩形,從左到右排成一排,且底邊在同一水平線上。
宿舍評比就要來了,為了及格,我們決定買不多於 m 塊的矩形木板,把這些作品和諧掉。
要求木板也從左到右排成一排,且底邊與作品的底邊在同一水平線上。
在能夠把所有作品和諧掉的前提下,我們希望這些木板的面積和最小,問最小面積和。
輸入格式
第一行兩個數 n 和 m,表示作品數和木板數;
第二行 n 個數 hi,表示從左到右第 i 個作品的高度。
輸出格式
一行乙個數 ans,表示答案。
樣例輸入
5 24 2 3 5 4
樣例輸出
22資料範圍
對於30%的資料:1 ≤ n,m ≤ 10;
對於100%的資料:1 ≤ n,m ≤ 100,1 ≤ hi ≤ 10000。
題解
動態規劃:
f[i][j]
:
max[i][j]
:第i
塊木板 ~ 第j
塊木板的高度最大值
#include
using
namespace std;
const
int n =
110, inf =
0x3f3f3f3f
;int f[n]
[n];
int h[n]
, max[n]
[n];
intmain()
}
cout << f[n]
[m]<< endl;
return0;
}
試題 演算法提高 和諧宿舍2
設f i j 表示覆蓋到i i這個矩形已經被覆蓋 的時候用了j塊木板的面積最小值,然後我們列舉一下最後一塊木板覆蓋的矩陣是從k到i的 包括k和i矩形 轉移方程 f i j min f i j f k 1 j 1 max len 其中max表示的是k到i矩形裡的高度最大的值,len是i k 1,所以我...
藍橋杯 演算法提高 和諧宿舍2
題目描述 題目描述 我的某室友學過素描,牆上有n張他的作品。這些作品都是寬度為1,高度不定的矩形,從左到右排成一排,且底邊在同一水平線上。宿舍評比就要來了,為了及格,我們決定買不多於m塊的矩形木板,把這些作品和諧掉。要求木板也從左到右排成一排,且底邊與作品的底邊在同一水平線上。在能夠把所有作品和諧掉...
藍橋試題 演算法提高 和諧宿舍2
我的某室友學過素描,牆上有n張他的作品。這些作品都是寬度為1,高度不定的矩形,從左到右排成一排,且底邊在同一水平線上。宿舍評比就要來了,為了及格,我們決定買不多於m塊的矩形木板,把這些作品和諧掉。要求木板也從左到右排成一排,且底邊與作品的底邊在同一水平線上。在能夠把所有作品和諧掉的前提下,我們希望這...