讨论 / 能量项链为什么过不去!
余洋go 2012-07-14 19:42:00
点我顶贴 收藏 删除

var

n:longint;

a:array[0..120] of longint;

f:array[0..120,0..120] of int64;

procedure init;

begin

assign(input,'energy.in');

assign(output,'energy.out');

reset(input);

rewrite(output);

end;

procedure terminate;

begin

close(input);

close(output);

halt;

end;

procedure readdata;

var

i:longint;

begin

read(n);

for i:=0 to n-1 do

read(a[i]);

end;

procedure main;

var

i,j:longint;

max:int64;

begin

for i:=0 to n-1 do

f[i,1]:=0;

for j:=2 to n do

for i:=0 to n-1 do

begin

f[i,j]:=f[i,j-1]+a[i]*a[(i+j-1) mod n]*a[(i+j) mod n];

// writeln(f[i,j],' ',f[i,j-1],' ',a[i],' ',a[(i+j-1) mod n],' ',a[(i+j) mod n]);

if f[i,j]<f[(i+1) mod n,j-1]+a[i]*a[(i+1) mod n]*a[(i+j) mod n] then

f[i,j]:=f[(i+1) mod n,j-1]+a[i]*a[(i+1) mod n]*a[(i+j) mod n];

// writeln(f[i,j],' ',f[(i+1) mod n,j-1],' ',a[i],' ',a[(i+1) mod n],' ',a[(i+j) mod n]);

// writeln('**************');

end;

{for i:=0 to n-1 do

begin

for j:=1 to n do

write(f[i,j]:5);

writeln;

end;}

max:=0;

for i:=0 to n-1 do

if max<f[i,n] then

max:=f[i,n];

writeln(max);

end;

begin

init;

readdata;

main;

terminate;

end.

#1 C_L@2012-07-13 18:24:00
回复 删除
不需要文件输入输出
#2 余洋go@2012-07-14 00:12:00
回复 删除
回复 沙发C_L 的帖子

这个是交tyvj用的程序,而且,这个具体的思路又是什么?

#3 余洋go@2012-07-14 19:42:00
回复 删除
哈~哈~哈~哈~~

偶自己改出来了,不过,还是很谢谢你能关注——c_L

查看更多回复
提交回复