编辑代码

#include <iostream>
#include <vector>

using namespace std;

// 背包问题的蛮力算法
int bruteForceKnapsack(const vector<int>& weights, const vector<int>& values, int capacity) {
    int n = weights.size();
    int maxProfit = 0;

    for (int i = 0; i < (1 << n); i++) {
        int currentWeight = 0;
        int currentProfit = 0;

        for (int j = 0; j < n; j++) {
            if (i & (1 << j)) {
                currentWeight += weights[j];
                currentProfit += values[j];
            }
        }

        if (currentWeight <= capacity && currentProfit > maxProfit) {
            maxProfit = currentProfit;
        }
    }

    return maxProfit;
}

int main() {
    vector<int> weights = {2, 3, 4, 5};
    vector<int> values = {3, 4, 5, 6};
    int capacity = 5;

    int result = bruteForceKnapsack(weights, values, capacity);

    cout << "背包问题的最大价值:" << result << endl;

    return 0;
}