frank是乙個非常喜愛整潔的人。他有一大堆書和乙個書架,想要把書放在書架上。書架可以放下所有的書,所以frank首先將書按高度順序排列在書架上。但是frank發現,由於很多書的寬度不同,所以書看起來還是非常不整齊。於是他決定從中拿掉k本書,使得書架可以看起來整齊一點。
書架的不整齊度是這樣定義的:每兩本書寬度的差的絕對值的和。例如有4本書:
1x2 5x3 2x4 3x1 那麼frank將其排列整齊後是:
1x2 2x4 3x1 5x3 不整齊度就是2+3+2=7
已知每本書的高度都不一樣,請你求出去掉k本書後的最小的不整齊度。
輸入格式:
第一行兩個數字n和k,代表書有幾本,從中去掉幾本。(1<=n<=100, 1<=k<=n)
下面的n行,每行兩個數字表示一本書的高度和寬度,均小於200。
保證高度不重複
輸出格式:
一行乙個整數,表示書架的最小不整齊度。
輸入樣例#1:
4 1
1 22 4
3 15 3
輸出樣例#1:3
但看去掉幾本書是不好寫方程的,看成從 n 本書裡挑 n - k 本,那麼轉移方程就是 f [ i ][ j ] = min( f [ i ] [ j ] , f[ k ][ j-1 ] + abs( num[i] - num[k])); f [ i ][ j ] 為前 i 本書選 j 本且第 i 本選上的最小代價,初始化的話, f [ i ][ 1 ] = 0;
**如下
#include
#include
#include
#include
using
namespace
std;
const
int size = 210;
int read()
while(in >= '0' && in <= '9')
return x * f;
}struct book
}b[size];
int num[size];
int n,p;
int f[size][size];
int main()
P1103 書本整理(洛谷)
frank是乙個非常喜愛整潔的人。他有一大堆書和乙個書架,想要把書放在書架上。書架可以放下所有的書,所以frank首先將書按高度順序排列在書架上。但是frank發現,由於很多書的寬度不同,所以書看起來還是非常不整齊。於是他決定從中拿掉k本書,使得書架可以看起來整齊一點。書架的不整齊度是這樣定義的 每...
動態規劃 洛谷P1103 書本整理
frank是乙個非常喜愛整潔的人。他有一大堆書和乙個書架,想要把書放在書架上。書架可以放下所有的書,所以frank首先將書按高度順序排列在書架上。但是frank發現,由於很多書的寬度不同,所以書看起來還是非常不整齊。於是他決定從中拿掉k本書,使得書架可以看起來整齊一點。書架的不整齊度是這樣定義的 每...
洛谷 P1103 書本整理(動規)
洛谷 p1103 書本整理 frank是乙個非常喜愛整潔的人。他有一大堆書和乙個書架,想要把書放在書架上。書架可以放下所有的書,所以frank首先將書按高度順序排列在書架上。但是frank發現,由於很多書的寬度不同,所以書看起來還是非常不整齊。於是他決定從中拿掉k本書,使得書架可以看起來整齊一點。書...