| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
请大牛们帮忙看看到底哪里错了!!!!!!超级感谢!!!!!!!!总是说我编译不过:
Main.pas(47,66) Error: Illegal qualifier
Main.pas(53,61) Error: Illegal qualifier
Main.pas(86,4) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
代码如下(pascal):
{
f1[i,j]表示z岸前i个部落与x岸前j个部落之间相连且i,j相连时的最小费用。
f1[i,j]:=min(f1[i-1,j-1],min(f1[i-1,j],f1[i,j-1]))+abs(z[i]-x[j]);
边界:f[0,0]=0
f2[i,j]表示x岸第i到n个部落与y岸前j个部落之间相连且i,j相连时的最小费用。
f2[i,j]:=min(f2[i+1,j-1],min(f2[i+1,j],f2[i,j-1]))+abs(x[i]-y[j]);
边界:f[n+1,0]=0
f3[i,j]表示z岸第i到k个部落与y岸第j到m个部落之间相连且i,j相连时的最小费用。
f3[i,j]:=min(f3[i+1,j+1],min(f3[i+1,j],f3[i,j+1]))+abs(z[i]-y[j]);
边界:f[k+1,m+1]=0
ans表示建桥的最小总费用。
ans:=min(ans,min(f2[j,l]+f2[i,l]+f3[j,i]));
}
var f1,f2,f3:array [0..101,0..101] of longint;
x,y,z:array [1..100] of longint;
t,n,m,k,ans:longint;
procedure init;
var i:longint;
begin
readln(n,m,k);
for i:=1 to n do
read(x[i]);
readln;
for i:=1 to m do
read(y[i]);
readln;
for i:=1 to k do
read(z[i]);
readln;
readln;
end;
function min(a,b:longint):longint;
begin
if a>b then min:=b
else min:=a;
end;
procedure dp;
var i,j,x:longint;
begin
fillchar(f1,sizeof(f1),30);
f1[0,0]:=0;
for i:=1 to k do
for j:=1 to n do
f1[i,j]:=min(f1[i-1,j-1],min(f1[i-1,j],f1[i,j-1]))+abs(z[i]-x[j]);
fillchar(f2,sizeof(f2),30);
f2[n+1,0]:=0;
for i:=n downto 1 do
for j:=1 to m do
f2[i,j]:=min(f2[i+1,j-1],min(f2[i+1,j],f2[i,j-1]))+abs(x[i]-y[j]);
fillchar(f3,sizeof(f3),30);
f3[k+1,m+1]:=0;
for i:=k downto 1 do
for j:=m downto 1 do
f3[i,j]:=min(f3[i+1,j+1],min(f3[i+1,j],f3[i,j+1]))+abs(z[i]-y[j]);
for i:=0 to n do
for j:=0 to k do
for x:=0 to m do
ans:=min(ans,min(f1[j,i]+f2[i,x]+f3[j,x],min(f1[j,i]+f2[i,x]+f3[j,x+1],min(f1[j,i]+f2[i,x]+f3[j+1,x],min(f1[j,i]+f2[i,x]+f3[j+1,x+1],min(f1[j,i]+f2[i+1,x]+f3[j,x],min(f1[j,i]+f2[i+1,x]+f3[j,x+1],min(f1[j,i]+f2[i+1,x]+f3[j+1,x],f1[i,j]+f2[i+1,x]+f3[j+1,x+1]))))))));
writeln(ans);
end;
begin
assign(input,'poj1683.in');
assign(output,'poj1683.out');
reset(input);
rewrite(output);
readln(t);
while t>0 do
begin
init;
dp;
dec(t);
end;
close(input);
close(output);
end.
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator