算法设计题

2025-01-06 05:28:11
推荐回答(2个)
回答1:

(再版)
0-1背包问题

0-1背包问题:给定n种物品和一个背包。项目我的体重是无线网络,它的价格是vi背包容量C.

Q:我应该如何选择装载物品的背包,使得装入背包的总价值呢?

选择项目装入背包的每个项目我只有两种选择,即装入背包或不装入背包。项目i装入背包多次,不仅加载的项目我。

因此,这个问题被称为0-1背包问题。

?0-1解向量(X1,X2,...,XN),西安∈{0,1},1 <= I <= N。

动态编程解决方案:

集0-1背包问题给定的子最优值,M(I,J),M(我,j)是第j背包容量,可选择的项目我,我+1,...,N 0-1背包问题的最优值

无效背包()

INT I,J;

为(i = 0; I <=我+ +)
为(J = 0 J <= JMAX; J + +)

M [] [J] = 0;

(i = 0; <= n; i + + )

为(J = 0; <= JMAX; J + +)

(W [I]> J)

米[I] [J] = M [I-1] [J];

其他

M [] [J] = MAX(M [I-1] [J],M [I-1] [JW [我] + V [I]);

printf的(“%d \ N”,M [N] [C]); BR />
}

回溯解决方案:

无效1背包(I)

{
BR />(>),百视通= CV

其他

{

(CW + W [I] <= C )
{

CW + = W [我];

CV + = V [I];

背包(i +1);

CW-= W [I];

CV-= V [I];

}
a>
背包(+1);

}

}

回答2:

你这个要用什么语言实现,c?