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

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇