0-1背包模板
#include <iostream> #define V 2010 using namespace std; int weight[V]; int value[V]; int f[V][V + 1]; int main() { int n, m; while(cin >>m>>n) { for (int i = 1; i <= n; i++) { cin >> weight[i] >> value[i]; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (weight[i] > j) { f[i][j] = f[i - 1][j]; } else { f[i][j] = f[i - 1][j] > f[i - 1][j - weight[i]] + value[i] ? f[i - 1][j] : f[i - 1][j - weight[i]] + value[i]; } } } cout << f[n][m] << endl; } }