约翰的干草库存已经告罄,他打算为奶牛们采购H(1≤H≤50000)磅干草,他知道N(1≤N≤100)个干草公司,现在用1到
N给它们编号。第i个公司卖的干草包重量为Pi(1≤Pi≤5000)磅,需要的开销为Ci(l≤Ci≤5000)美元.每个干草公
司的货源都十分充足,可以卖出无限多的干草包. 帮助约翰找到最小的开销来满足需要,即采购到至少H磅干草
.
标签:nal src output center onclick scan 技术分享 std limit
笑死,自从遇见贪心,什么都想贪心=w=
主要解法:完全背包DP
1 #include<cstdio> 2 #include<iostream> 3 #define maxn 1000000 4 using namespace std; 5 6 int DP[maxn],n,h,w[maxn],v[maxn],inf = 0x3f3f3f3f; 7 8 int main(){ 9 scanf("%d%d",&n,&h); 10 11 for(int i = 1;i <= n;i++){ 12 scanf("%d%d",&v[i],&w[i]); 13 } 14 15 for(int i = 1;i <= h;i++){ 16 DP[i] = inf; 17 } 18 19 for(int i = 1;i <= n;i++){ 20 for(int j = 1;j <= h;j++){ 21 if(v[i] >= j) DP[j] = min(DP[j],w[i]); 22 else DP[j] = min(DP[j],DP[j-v[i]]+w[i]); 23 } 24 } 25 26 printf("%d",DP[h]); 27 28 return 0; 29 }
[BZOJ] 1618: [Usaco2008 Nov]Buying Hay 购买干草
标签:nal src output center onclick scan 技术分享 std limit
原文地址:http://www.cnblogs.com/Chorolop/p/7468184.html