バックパック問題の分析:
https ://www.cnblogs.com/yun-an/p/11037618.html
https://blog.csdn.net/qq_38984851/article/details/81133840/
#include<iostream>
#include<string.h>
using namespace std;
int a[30];
int v[30]; //价格
int w[30]; //重要度
int f[30005];
int main()
{
int n; //总钱数
int m; //物品数量
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&v[i],&w[i]);
}
memset(f,0,sizeof(f));
for(int i=1;i<=m;i++)
{
for(int j=n;j>=v[i];j--)
{
f[j]=max(f[j],f[j-v[i]]+w[i]*v[i]);
}
}
printf("%d",f[n]);
return 0;
}