作业介绍

完全背包

#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 小时