你有乙個豬圈,有n頭豬,每天你最多可以殺一頭豬賣錢,獲益就是豬的體重。但是每過一天每頭豬的體重都會下降p[i](當然,如果豬體重<=0了,自然獲利為0),問k天內你的最大獲利。
輸入格式:
第一行兩個數n、k;
第二行n個數,表示豬的初始重量a[i];
第三行n個數表示p[i]。
【資料規模】
對於20%的資料,滿足1≤n≤20;
對於100%的資料,滿足1≤n≤1000,初始重量≤10^5.
輸出格式:
一行乙個數表示最大獲利。
輸入樣例#1:
2 210 10
1 2
輸出樣例#1:
19
//01揹包問題,可以化為一維
#include#include
#include
using
namespace
std;
int n,k,d[1005
],ans;
struct
datapig[
1005
];bool
cmp(data a,data b)
intmain()
luoguP4127 數字dp 列舉
題目大意 給出兩個數a,b,求出 a,b 中各位數字之和能整除原數的數的個數。題解 各位數字之和最大為9 18 162,因此我們可以列舉數字之和。定義狀態為dp pos sum1 sum2 表示列舉到pos位,前面數字的和sum1,以及前面數字的組成的數對mod取餘的結果。最後判斷一下sum1是否等...
Luogu P1156 垃圾陷阱 DP
f i j 表示在第i個垃圾,高度為j的最大生命值 轉移分三部分 如果j 當前垃圾的高度,且兩個垃圾間的時間小於等於上乙個狀態f i 1 j a i v 的生命值,則可以墊高度 如果j 當前垃圾的高度,且兩個垃圾間的時間小於等於上乙個狀態f i 1 j 的生命值,則可以吃 如果j 當前垃圾的高度,且...
luoguP4719 模板 動態 DP
我理解的動態dp 發現dp可以寫成矩陣的形式,因此用資料結構維護矩陣乘積。對於這道題,顯然有dp f 表示 x 的子樹中,x選 不選的最大點獨立集。f sum limits max f f f sum limits f a x 既然在樹上,就用樹剖或者lct解決,本質都是將樹拆成鏈,這裡用樹剖。設 ...