• P2918 [USACO08NOV]买干草Buying Hay


    链接:Miku

    ----------------

    这就是一个完全背包的板子题

    ----------------

    我们把重量当作重量,开销当作价值,那么这个题就是个求价值最小的完全背包

    然而题目上说了是不少于,也就是说最优解不一定恰好就是买h磅的时候,怎么办呢?

    只要多余h就行了的话,我们就在h+x的范围内找一个最小值不就可以了?

    ----------------

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 using namespace std;
     6 int dp[55001];
     7 int h;
     8 int n;
     9 int w[101];
    10 int v[101];
    11 int main(){
    12     scanf("%d%d",&n,&h);
    13     for(int i=1;i<=n;++i){
    14         scanf("%d%d",&w[i],&v[i]);
    15     }
    16     memset(dp,0x7f7f,sizeof(dp));
    17     h+=1000;
    18     dp[0]=0;
    19     for(int i=1;i<=n;++i){
    20         for(int j=w[i];j<=h;++j){
    21                 dp[j]=min(dp[j],dp[j-w[i]]+v[i]);
    22         }
    23     }
    24     int ans=0x7f7f7f;
    25     for(int i=h-1000;i<=h;++i){
    26     //    cout<<i;
    27     //    cout<<dp[i]<<endl;
    28         ans=min(ans,dp[i]);
    29     }
    30     cout<<ans;
    31     return 0;
    32 }
    Ac
  • 相关阅读:
    MiniOS系统
    《硅谷传奇》
    《构建之法》1—3章
    学术诚信与职业道德
    Sprint2
    Scrum 项目 7.0 Sprint回顾
    Scrum 项目 6.0 sprint演示
    Scrum 项目 5.0
    Scrum 项目4.0
    操作系统 实验三 进程调度模拟程序
  • 原文地址:https://www.cnblogs.com/For-Miku/p/12260473.html
Copyright © 2020-2023  润新知