搜索与回溯5.6——工作效益

SSL 2283(相似哦)
题目说明
五人从事五件事,收益各不相同,但每人只能从事一项,且一项只能有一个人来做。求最大收益。

var
  a:array[1..5,1..5]of longint;
  b:array[1..5]of longint;
  i,j,max:longint;
procedure search(k,x:longint);
var
  i:longint;
begin
  if k>5 then begin if maxthen max:=x; end
   else
  for i:=1 to 5 do
   if b[i]=0 then
    begin
      b[i]:=1;
      search(k+1,x+a[k,i]);
      b[i]:=0;
    end;
end;

begin
  for i:=1 to 5 do
   begin
     for j:=1 to 5 do
      read(a[i,j]);
     readln;
   end;
  search(1,0);
  writeln(max);
end.

搜索解。判断一个工作有没有人从事,然后当所有人都选完工作以后判断是不是最大收益,就这样。
暴力,我的风格!

你可能感兴趣的:(搜索与回溯5.6——工作效益)