我感觉硬改没错,检查了5.6遍,结果输出还是0.。。。。
最坑的是我逐行运行时查看变量,abc这个变量不停的变,我根本没给这个变量赋值啊。。。。
题是rqnoj的第五题,能量项链,我用动规做的
程序见此
求大神帮看看,万分感谢!!!!
var
n,i,j,k,l,m,abc:longint;
a:array[1..201]of longint;
dg:array[1..201,1..201]of longint;
begin
read(n);
for i:=1 to n do
begin
read(a[i]);
a[i+n]:=a[i];
end;
a[2*n+1]:=a[1];
for i:=1 to (n*2+1) do
for j:=1 to (n*2+1) do
dg[i,j]:=0;
for i:=1 to (n-1) do
for j:=1 to n do
begin
abc:=1;
for k:= j to (j+i-1) do
begin
abc:=dg[j,k]+dg[k+1,j+i]+a[j]*a[k+1]*a[j+i+1];
if abc>dg[j,j+i] then
dg[j,j+i]:=abc;
end;
end;
abc:=0;
for i:=1 to n do
begin
if abc<dg[i,i+n] then
abc:=dg[i,i+n];
end;
write(abc);
end.
最坑的是我逐行运行时查看变量,abc这个变量不停的变,我根本没给这个变量赋值啊。。。。
题是rqnoj的第五题,能量项链,我用动规做的
程序见此
求大神帮看看,万分感谢!!!!
var
n,i,j,k,l,m,abc:longint;
a:array[1..201]of longint;
dg:array[1..201,1..201]of longint;
begin
read(n);
for i:=1 to n do
begin
read(a[i]);
a[i+n]:=a[i];
end;
a[2*n+1]:=a[1];
for i:=1 to (n*2+1) do
for j:=1 to (n*2+1) do
dg[i,j]:=0;
for i:=1 to (n-1) do
for j:=1 to n do
begin
abc:=1;
for k:= j to (j+i-1) do
begin
abc:=dg[j,k]+dg[k+1,j+i]+a[j]*a[k+1]*a[j+i+1];
if abc>dg[j,j+i] then
dg[j,j+i]:=abc;
end;
end;
abc:=0;
for i:=1 to n do
begin
if abc<dg[i,i+n] then
abc:=dg[i,i+n];
end;
write(abc);
end.