信息学(PASCAL)题目紧急求解

来源:百度知道 编辑:UC知道 时间:2024/06/23 19:15:35
有N个景点和N个导游,每个导游对每个景点熟悉程度不同,一个景点只需一个导游。求最大熟悉度。(0<=N<=17)
例如:
INPUT:
4
1 2 3 4
4 3 2 1
2 3 4 1
2 4 3 1
OUTPUT:
16
需要详细的思路和题解,一般的深搜只能够到N=9,急求大牛帮助,谢谢!

var i,j,k:integer;
a:array[1..20,1..20] of integer;
v:array[0..20,1..20] of longint;
max:longint;
n:integer;

begin
readln(n);

for i:=1 to n do
begin
for j:=1 to n do read(a[i,j]);
readln;
end;

for i:=1 to n do
begin

for j:=1 to n do
begin

max:=0;
for k:=1 to n do
begin

if k=j then continue;
if v[i-1,k]>max then max:=v[i-1,k];
end;

v[i,j]:=max+a[i,j];
end;

end;

max:=0;
for i:=1 to n do if v[n,i]>max then max:=v[n,i];

writeln(max);
end.

//试一下吧

var
a:array[0..17,0..17] of 1..1000;
s:array[0..17] of boolean;
i,j,n,tot:longint;
procedure try(i,sum:longint);
var
j:longint;
begin
if i>n then begin
if sum<tot then