乌龟棋Pascal 高手进!
发布网友
发布时间:2024-10-01 10:43
我来回答
共3个回答
热心网友
时间:2024-10-13 10:56
动态规划
f[i,j,k,l]:=max(f[i-1,j,k,l],f[i,j-1,k,l],f[i,j,k-1,l],f[i,j,k,l-1])+a[i+j*2+k*3+l*4+1];
i,j,k,l分别表示第一种,第二种,第三种,第四种卡用的数量
当前所在的点就是 第 i+j*2+k*3+l*4+1个格子
Var
a:array[1..4] of longint;
s:array[1..350] of longint;
f:array[-1..40,-1..40,-1..40,-1..40] of longint;
i,j,k,l,m,n:longint;
function max(x,y:longint):longint;
Begin
if x>y then exit(x) else exit(y);
End;
BEGIN
readln(n,m);
for i:=1 to n-1 do read(s[i]);readln(s[n]);
for i:=1 to m do
begin
read(k);
inc(a[k]);
end;
for i:=0 to a[1] do
for j:=0 to a[2] do
for k:=0 to a[3] do
for l:=0 to a[4] do
f[i,j,k,l]:=s[1+i+2*j+3*k+4*l]+max( max(f[i-1,j,k,l],f[i,j-1,k,l]),max(f[i,j,k-1,l],f[i,j,k,l-1]) );
writeln(f[a[1],a[2],a[3],a[4]]);
END.
热心网友
时间:2024-10-13 10:57
2010noip提高第二题,网上一搜一卡车
热心网友
时间:2024-10-13 10:57
四重循环DP..
方程f[i,j,k,l]=max{f[i-1,j,k,l],f[i,j-1,k,l],f[i,j,k-1,l],f[i,j,k,l-1]}+a[i+j*2+k*3+l*4+1]
代码不贴了,私信给你.发出来总被吞掉
乌龟棋Pascal 高手进!
动态规划 f[i,j,k,l]:=max(f[i-1,j,k,l],f[i,j-1,k,l],f[i,j,k-1,l],f[i,j,k,l-1])+a[i+j*2+k*3+l*4+1];i,j,k,l分别表示第一种,第二种,第三种,第四种卡用的数量 当前所在的点就是 第 i+j*2+k*3+l*4+1个格子 Var a:array[1..4] of ...