P2918 [USACO08NOV] Buying Hay S(不一样的完全背包)

编程入门 行业动态 更新时间:2024-10-25 16:23:10

P2918 [USACO08NOV] Buying Hay S(不一样的完全<a href=https://www.elefans.com/category/jswz/34/1767487.html style=背包)"/>

P2918 [USACO08NOV] Buying Hay S(不一样的完全背包)

这题是个多重背包的裸题,但有一点不同,即:

多重背包的F[j]代表在不超过j磅的干草下,最小的开销

而本题的F[j]表示用(≥F[j])磅干草的最小开销

这看起来有点麻烦,但其实只需将多重背包的程序稍稍改下即可

就是可能在“背包容量”大于h的地方所用的“钱”比在h位置的少,那我们就遍历>=h,的花费找到最小值即可

ACcode:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,h,f[50005],w[105],c[105]; 
void solve() {cin>>n>>h;for(int i=1;i<=n;i++) cin>>w[i]>>c[i];for(int i=1;i<=h+5000;i++) f[i]=1e9;for(int i=1;i<=n;i++){for(int j=w[i];j<=h+5000;j++){f[j]=min(f[j],f[j-w[i]]+c[i]);}}int mmin=1<<30;for(int i=h;i<=h+5000;i++){mmin=min(mmin,f[i]);}cout<<mmin<<"\n";
}
signed main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int t=1;//cin>>t;while(t--) {solve();}return 0;
}

over~

更多推荐

P2918 [USACO08NOV] Buying Hay S(不一样的完全背包)

本文发布于:2023-12-08 03:14:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1672192.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:背包   USACO08NOV   Hay   Buying

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!