点2、3、5没有过
by gyx577158484 @ 2023-04-02 10:25:04
```cpp
#include<bits/stdc++.h>
using namespace std;
int capacity;int num;int pack[105][1005];
int val[105];int vol[105];
int main(){
scanf("%d%d",&capacity,&num);
for(int i=0;i<num;i++)
scanf("%d%d",&vol[i],&val[i]);
for(int i=1;i<=num;i++)
for(int v=0;v<=capacity;v++){
pack[i][v]=pack[i-1][v];
if(v-vol[i]>=0&&pack[i][v]<=pack[i-1][v-vol[i]]+val[i])
pack[i][v]=pack[i-1][v-vol[i]]+val[i];
}
cout<<pack[num][capacity]<<endl;
}
```
我也是这个问题
by qiqi_loveme99 @ 2023-04-04 19:14:41
我是通过修改输入边界条件解决的
by qiqi_loveme99 @ 2023-04-04 19:19:57
第一个for循环[1,num]
by qiqi_loveme99 @ 2023-04-04 19:20:44
```
#include<iostream>
using namespace std;
int w[101],c[101],dp[101][1001];
int main(){
int t,m;
cin>>t>>m;
for(int i=1;i<=m;i++) cin>>w[i]>>c[i];
for(int i=1;i<=m;i++)
for(int j=1;j<=t;j++){
dp[i][j]=dp[i-1][j];
if(w[i]<=j) dp[i][j]=max(dp[i][j],dp[i-1][j-w[i]]+c[i]);
}
cout<<dp[m][t]<<endl;
return 0;
}
by xxc123 @ 2023-04-17 21:37:36
6
by wangxiran666 @ 2023-04-26 19:19:03
dp背包
by WSCU_DZ_XM @ 2023-04-28 21:01:33