jimmy_qian 2012-09-03 04:56:00
点我顶贴
收藏
删除
过50题了,纪念一下
var
f:array[0..100,0..100] of longint;
a,b:array[0..100] of longint;
i,j,n,k,l,x,y,z:longint;
Function Seeit(w,l:longint):longint;
var
a:longint;
begin
a:=w+l-1;
if a<=n then exit(a)
else exit(a mod n);
end;
begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
b[i-1]:=a[i];
end;
b[n]:=a[1];
for l:=2 to n do
for i:=1 to n do
for j:=1 to l-1 do
begin
x:=Seeit(i,l);
y:=Seeit(i,j);
if f[i,l]>f[i,j]+f[Seeit(i,j+1),l-j]+a[i]*b[y]*b[x] then f[i,l]:=f[i,l]
else f[i,l]:=f[i,j]+f[Seeit(i,j+1),l-j]+a[i]*b[y]*b[x];
end;
x:=0;
for i:=1 to n do if x> f[i,n] then x:=x
else x:=f[i,n];
writeln(x);
end.