codevs1048

题目地址:http://codevs.cn/problem/1048/

分析:

动态规划

代码:

var

 i,j,k,n:longint;

 x,a:array[0..100,0..100] of longint;


  function min(a,b:longint):longint;

  begin

   if a>b then exit(b);

   exit(a);

  end;


begin

 readln(n);

 for i:=1 to n do read(a[i,i]);

 for i:=1 to n do

 for j:=i+1 to n do

 for k:=i to j do a[i,j]:=a[i,j]+a[k,k];

 for i:=1 to n do

 for j:=1 to n do

 if i<>j then x[i,j]:=1000000;

 for i:=2 to n do

 x[i-1,i]:=a[i-1,i];

 for i:=1 to n do

 for j:=i-1 downto 1 do

 begin

  for k:=j to i-1 do

  x[j,i]:=min(x[j,i],x[j,k]+x[k+1,i]+a[j,i]);

 end;

 writeln(x[1,n]);

end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值