zoukankan      html  css  js  c++  java
  • [BZOJ] 1618: [Usaco2008 Nov]Buying Hay 购买干草

    1618: [Usaco2008 Nov]Buying Hay 购买干草

    Time Limit: 5 Sec  Memory Limit: 64 MB
    Submit: 1216  Solved: 633
    [Submit][Status][Discuss]

    Description

    约翰的干草库存已经告罄,他打算为奶牛们采购H(1≤H≤50000)磅干草,他知道N(1≤N≤100)个干草公司,现在用1到
    N给它们编号。第i个公司卖的干草包重量为Pi(1≤Pi≤5000)磅,需要的开销为Ci(l≤Ci≤5000)美元.每个干草公
    司的货源都十分充足,可以卖出无限多的干草包.    帮助约翰找到最小的开销来满足需要,即采购到至少H磅干草

    Input

    第1行输入N和H,之后N行每行输入一个Pi和Ci.

    Output

    最小的开销.

    Sample Input

    2 15
    3 2
    5 3

    Sample Output

    9
    FJ can buy three packages from the second supplier for a total cost of 9.

    HINT

     

    Source

    Silver

     

    Analysis

    笑死,自从遇见贪心,什么都想贪心=w=

    主要解法:完全背包DP

    Code

     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 }
    发现自己的贪心策略出错=w=此处完全背包
    转载请注明出处 -- 如有意见欢迎评论
  • 相关阅读:
    array.prototype.slice.call(arguments)
    axios 的坑
    Cannot read property 'range' of null
    IDEA导入Eclipse的JavaEE项目详细步骤链接
    使用 yarn 安装时,报错node_modules ode sass:Command failed.
    axios post请求非json传参设置
    vue-cli 3.x跨域配置
    idea错误: 找不到或无法加载主类
    Git 上传新项目
    Windows下生成SSH密钥
  • 原文地址:https://www.cnblogs.com/Chorolop/p/7468184.html
Copyright © 2011-2022 走看看