01背包只能过60 求救哪错了
#include<iostream>
#include<vector>
using namespace std;
struct thing{
int val;
int vol;
};
int main(){
int v,n;
cin>>v>>n;
int i,j;
thing temp;
vector<thing> t;
for(i=0;i<n;i++){
cin>>temp.vol>>temp.val;
t.push_back(temp);
}
int dp[n+1][v+1];
for(i=0;i<=n;i++)
for(j=0;j<=v;j++){
dp[i][0]=0;}
//先种类再体积
for(i=1;i<=n;i++){
for(j=1;j<=v;j++){
if(t[i].vol>j){
dp[i][j]=dp[i-1][j];
}
else dp[i][j]=max(dp[i-1][j-t[i].vol]+t[i].val,dp[i-1][j]);
}
}
cout<<dp[n][v]<<endl;
} #笔试题目##华为#