【发布时间】:2019-03-31 18:18:04
【问题描述】:
卡车问题:
我们至少需要 W1 项目 1 的重量和 W2 项目 2 的重量,以获得最低总耗气值。
每辆卡车承载w1 重量的物品1,w2 重量的物品2 并消耗v 的汽油。
例如,输入将是:
5 60 5 // W1, W2, number of records below
3 36 120 // w1, w2, v
10 25 129 // w1, w2, v
5 50 250 // w1, w2, v
1 45 130 // w1, w2, v
4 20 119 // w1, w2, v
输出应该是:
249
我需要实现一个功能
int truck_knapsack(int W1, int W2, int w1[], int w2[], int v[], int n);
返回gas消耗的最小值,其中
-
n是记录(卡车)的数量, -
v[]耗气值, -
w1[]item1 的权重, -
w2[]item2 的权重, -
W1item1的必要重量, -
W2item2 的必要重量。
我发现了类似的问题陈述和解决方案,但我无法为此找到解决方案。
我的老师指示我使用 3d 数组自下而上的方法来解决这个问题,但任何解决方案都会非常有帮助。
【问题讨论】:
-
发布你到目前为止所尝试的内容
-
你好,Sara,恐怕示例输入不清楚。第一行是什么(其注释与其他行的注释不同)?你还说输出应该是
249,以便我验证我需要理解输入(这导致了我之前的问题)。请尝试解释输入示例,以便 SOers 可以更好地帮助您 -
@Ely 第一行输入是 item1 的总重量,item2 的总重量和后面输入的数量,之后的每个输入都有 item1 的重量,item2 的重量和 gas 的值花了。
标签: c dynamic-programming knapsack-problem