1996年分区联赛提高组之三 挖地雷
Time Limit:1000MS Memory Limit:65536K
Total Submit:197 Accepted:87
Description
在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。
例如:
![](http://10.156.17.250/JudgeOnline/image/1071-1.jpg)
Input
Output
K1 K2,……,KV (挖地雷的顺序)
MAX (挖地雷的数量)
Sample Input
5
10 8 4 7 6
1 1 1 0
0 0 0
1 1
1
Sample Output
1 3 4 5
27
Source
fzy
公式:
f[i]=true--max(j[i]/f[j]);
var
max,i,j,k,n,m,ans,tmp:longint;
a:array[-1..100]of longint;
c:array[-1..100,-1..100]of boolean;
f,d,b:array[-1..100]of longint;
begin
readln(n);
fillchar(c,sizeof(c),false);
fillchar(f,sizeof(f),0);
for i:=1 to n do
read(b[i]);
for i:=1 to n-1 do
begin
for j:=i+1 to n do
begin
read(k);
if k=1 then
c[i,j]:=true;
end;
readln;
end;
for i:=n downto 1 do
begin
for j:=i+1 to n do
begin
if c[i,j] and (f[j]>f[i])
then begin
f[i]:=f[j];
d[i]:=j;
end;
end;
f[i]:=f[i]+b[i];
end;
max:=0;
for i:=1 to n do
if f[i]>max then
begin
max:=f[i];
tmp:=i;
end;
i:=tmp;
{if(i<>0)then
write(i,' ');}
while i<>0 do
begin
write(i,' ');
i:=d[i];
end;
writeln;
writeln(max);
end.