pascal语言,用回溯(深搜)做装箱问题,就是01背包

学习 时间:2026-04-07 18:25:28 阅读:3931
pascal语言,用回溯(深搜)做装箱问题,就是01背包有一个箱子容量为V,同时有N个物品,每个物品有一个体积 (正整数).要求从M个物品中,任取若干个装入箱内,使箱子的剩余空间为最小.

最佳回答

无奈的大白

自然的抽屉

2026-04-07 18:25:28

program kas;var a:array[1。。10000] of integer; n,m,i,min:integer;procedure go(i,sum:integer);begin if sum>m then exit; if min>m-sum then min:=m-sum; if i=n+1 then exit; go(i+1,sum+a[i]); go(i+1,sum);end;begin readln(n,m); for i := 1 to n do read(a[i]); min:=maxint; go(1,0); writeln(min);end。 给我加分!

最新回答共有2条回答

  • 大力的大神
    回复
    2026-04-07 18:25:28

    program kas;var a:array[1。。10000] of integer; n,m,i,min:integer;procedure go(i,sum:integer);begin if sum>m then exit; if min>m-sum then min:=m-sum; if i=n+1 then exit; go(i+1,sum+a[i]); go(i+1,sum);end;begin readln(n,m); for i := 1 to n do read(a[i]); min:=maxint; go(1,0); writeln(min);end。 给我加分!

上一篇 have seen had seen的区别 急要啊

下一篇 溪水因枯涸见石更清洌了 中含有的成语是什么?