📄 p1100.pas
字号:
program binary;
const
MAXN=30;
var
fin,fout:text;
a:array[1..MAXN] of longint;
f:array[0..MAXN,0..MAXN] of longint;
root:array[0..MAXN,0..MAXN] of longint;
n,i,j,d,k,t:longint;
procedure preorder(i,j:longint);
var
k:longint;
begin
if i>j then exit;
k:=root[i,j];
write(k,' ');
preorder(i,k-1);
preorder(k+1,j);
end;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n do begin
f[i,i]:=a[i];
root[i,i]:=i;
f[i,i-1]:=1;
f[i-1,i]:=1;
end;
for d:=1 to n-1 do begin
for i:=1 to n-d do begin
j:=i+d;
for k:=i to j do begin
t:=f[i,k-1]*f[k+1,j]+a[k];
if t>f[i,j] then begin
f[i,j]:=t;
root[i,j]:=k;
end;
end;
end;
end;
writeln(f[1,n]);
preorder(1,n);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -