初学背包,似乎不太好。我互联网、题解都翻过了,但都没起到一点作用,对于如何找到转移方程还是一头雾水,向大佬们求助,谢谢!
#include<bits/stdc++.h>
using namespace std;
int c[1000],w[1000],dp[1000][1000],n,m;
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++)cin>>w[i]>>c[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)dp[i][j]=max(dp[i-1][j],dp[i][j-w[i]]+c[j]);
}
cout<<dp[n][m];
return 0;
}