#include <iostream> using namespace std; int max(int a, int b) { if (a > b) return a; return b; } int dp(int i, int n, int* v, int* w, int* q, bool* visit, int m, int** DP) { //找到所有的主件和附件的组合 //visit是否被买 int a = 0; int b = 0; if (i > m - 1) return 0; if (visit[i]) { if (DP[i + 1][n] != -1...