最佳调度问题 Time Limit:10000MS Memory Limit:65536K Total Submit:89 Accepted:36 Case Time Limit:1000MS

来源:互联网 发布:vb游戏代码大全 编辑:程序博客网 时间:2024/05/18 00:40
var
  ans,n,k,i,j:longint;
  t,x:array[0..10000] of longint;
procedure machine(c,d:longint);
var max,e,f:longint;
begin 
  if d<ans then 
  begin
    if c>n then ans:=d
     else begin
            for f:=1 to k do
            begin
               x[f]:=x[f]+t[c];
               if x[f]>d then machine(c+1,x[f])
               else machine(c+1,d);
               x[f]:=x[f]-t[c];
            end;
          end;
  end;
end;
begin
  readln(n,k);
  for i:=1 to n do read(t[i]);
  for i:=1 to n-1 do
   for j:=i+1 to n do 
   if t[i]<t[j] then
   begin
     t[0]:=t[i];
     t[i]:=t[j];
     t[j]:=t[0];
   end;  
   i:=1;
   while i<=n do
   begin
     ans:=ans+t[i];
     i:=i+k; 
   end;
   machine(1,0);
   writeln(ans);
end.
0 1
原创粉丝点击