作业介绍
完全背包
#include<bits/stdc++.h>
using namespace std;
int n,m,c[2007],v[2007],dp[10007];
int main(){
cin >> m >> n;
for(int i=1;i<=n;i+=1) cin >> c[i] >> v[i];
for(int i=1;i<=n;i+=1){
for(int j=c[i];j<=m;j++){
dp[j]=max(dp[j],dp[j-c[i]]+v[i]);
}
}
cout << "max="<< dp[m];
return 0;
}
多重背包
#include<bits/stdc++.h>
//Halanfus到此一游§(* ̄▽ ̄*)§
using namespace std;
int n,m,c[207],v[207],p[207],miku[100007];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i+=1) scanf("%d",&c[i]);
for(int i=1;i<=n;i+=1) scanf("%d",&v[i]);
for(int i=1;i<=n;i+=1) scanf("%d",&p[i]);
for(int i=1;i<=n;i+=1){
for(int k=1;k<=p[i];k+=1){
for(int j=m;j>=v[i];j-=1){
miku[j]=max(miku[j],miku[j-v[i]]+c[i]);
}
}
}
printf("%d",miku[m]);
return 0;
}
题目
认领作业后才可以查看作业内容。
- 状态
- 正在进行…
- 题目
- 6
- 开始时间
- 2024-11-1 0:00
- 截止时间
- 2024-11-30 23:59
- 可延期
- 24 小时