c语言解决01背包问题示例代码
代码语言:c
所属分类:算法
代码描述:c语言解决01背包问题示例代码,01背包问题就是你需要选择一组物品放入一个背包,以使它们的总价值最大化,同时不超过背包的容量限制。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#include <stdio.h>
int max(int a, int b) {
return (a > b) ? a: b;
}
void knapsack(int values[], int weights[], int capacity, int n) {
int dp[n + 1][capacity + 1];
int i,
w; // 将变量声明移到循环外
for (i = 0; i <= n; i++) {
for (w = 0; w <= capacity; w++) {
if (i == 0 || w == 0) {
dp[i][w] = 0;
}
else if (weights[i - 1] <= w) {
dp[i][w] = max(values[i - 1] + dp[i - 1][w - weights[.........完整代码请登录后点击上方下载按钮下载查看
网友评论0