-
tyvj1014 乘法游戏。
间隔类的动态规划:
f[i,j]:=min
2<=i,j<=n-1, i<=k<=j)
初始化:f[i,i]:=a[i-1]*a[i]*a[k+1](2<=i<=n-1)。
f[i,j]:=0(j=i)
program p1014;
var n:longint;
a:array[1..100]of longint;
f:array[0..100,0..100]of longint;
procedure init;
var i,j:longint;
beginreadln(n);
for i:=1 to n do
read(a[i]);
for i:=0 to n do
for j:=0 to n do
f[i,j]:=maxint;
for i:=1 to n do
for j:=1 to i-1 do
f[i,j]:=0;
for i:=2 to n-1 do
f[i,i]:=a[i-1]*a[i]*a[i+1];
end;function min(a,b:longint):longint;
beginif a<=b then min:=a else min:=b;
end;procedure dp;
var i,j,k:longint;
beginfor j:=2 to n-1 do
for i:=j-1 downto 2 do
for k:=i to j do
f[i,j]:=min(f[i,k-1]+f[k+1,j]+a[i-1]*a[k]*a[j+1],f[i,j]);
writeln(f[2,n-1]);
end;begin
init;dp;
end.补充如下:动态规划是要练的,我去北京训练,大牛说你可以练50个动态规划,只要类型齐全,你就无后顾之忧了。
动态规划有几个特点,其中大多数是最优的和阶段性的。
顺便一提:
楼下!! 你把我的程序放上去有什么意义!
发问者:瞧!
直接把rp:=-maxlongint放在楼下!!
-
动态编程主要是看它是否有后遗症。
看看你是否能通过一个条件知道其他答案,最终知道问题的解决方案(如果不能,那就是后效)。
其实答案在楼上,我只是你的补充问题。。。
间隔类的动态规划:
f[i,j]:=min
2<=i,j<=n-1, i<=k<=j)
初始化:f[i,i]:=a[i-1]*a[i]*a[k+1](2<=i<=n-1)。
f[i,j]:=0(j=i)
program p1014;
var n:longint;
a:array[1..100]of longint;
f:array[0..100,0..100]of longint;
procedure init;
var i,j:longint;
beginreadln(n);
for i:=1 to n do
read(a[i]);
for i:=0 to n do
for j:=0 to n do
f[i,j]:=maxint;
for i:=1 to n do
for j:=1 to i-1 do
f[i,j]:=0;
for i:=2 to n-1 do
f[i,i]:=a[i-1]*a[i]*a[i+1];
end;function min(a,b:longint):longint;
beginif a<=b then min:=a else min:=b;
end;procedure dp;
var i,j,k:longint;
beginfor j:=2 to n-1 do
for i:=j-1 downto 2 do
for k:=i to j do
f[i,j]:=min(f[i,k-1]+f[k+1,j]+a[i-1]*a[k]*a[j+1],f[i,j]);
writeln(f[2,n-1]);
end;begin
init;dp;
end.
今天是全国人民最幸福的日子,是祖国60岁生日。 虽然这一天我没有亲身体验这里的气氛,但坐在电视机前,我同样兴奋和高兴。 >>>More
首先,你需要考虑你分手的原因是什么,是冲动,还是有没有难以解决的问题,比如家庭干扰,你自己的性格和脾气。 如果是后者,问问自己,这些问题解决了吗? 能解决吗? >>>More