永发信息网

装箱问题 noip2001普及组第四题

答案:1  悬赏:60  手机版
解决时间 2021-06-01 09:52
  • 提问者网友:富士山上尢
  • 2021-06-01 04:13

var
 v,n,x,i,j:integer;
 f:array[0..20000]of boolean;


begin
readln(v);
readln(n);
fillchar(f,sizeof(f),false);
f[v]:=true;
for i:=1 to n do
 begin
  readln(x);
  if x<=v then
  for j:=v downto x do
   if f[j] then  f[j-x]:=true;
 end;
for i:=0 to v do if f[i] then begin writeln(i); break; end;
end.
为什么只能过一个点

 不要源程序

最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-06-01 05:44

你的j循环有点问题,照你的程序来看,会导致同一个物品反复装进箱子里面


比如:假设有一件物品体积为1,那么你的箱子就被装满了


能过的那个点可能是你运气好吧

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯