p1607.dpr

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· DPR 代码 · 共 60 行

DPR
60
字号
program p1607;

{$APPTYPE CONSOLE}

const
        maxn    = 100;

type
        Tmaxget = array[0..maxn , 0..maxn , 0..maxn] of Longint;

var
        n , m           : Longint;
        MaxGet          : Tmaxget;

function f ( a , b , l : Longint ) : Longint;
var     max , i , t : Longint;
begin
if MaxGet [a] [b] [l] = - 1 then
        begin
        if l = 0 then if a <> 0 then MaxGet [a] [b] [0] := f ( 0 , 0 , a )
                                else MaxGet [a] [b] [0] := 0 
                else begin
                max := 0;
                for i := 1 to m do
                        if ( i <= l ) then
                                begin
                                t := a + b + l - f ( b , a + i , l - i );
                                if t > max then max := t;
                                end; 
                MaxGet [a] [b] [l] := max;
                end; 
        end;
f := MaxGet [a] [b] [l];
end;

begin
assign ( input , 'p.in' ); reset ( input );
assign ( output , 'p.out' ); rewrite ( output );

{for n := 1 to 100 do
        begin
        for m := 1 to n do
                begin
                fillchar ( MaxGet , sizeof ( MaxGet ) , $FF );
                write ( f ( 0 , 0 , n  ) : 3 );
                end;
        writeln;
        end;
exit;}


while not seekeof do
        begin
        readln ( n , m );
        if m >= ( n + 1 ) div 2 then begin writeln ( m ); continue; end;
        fillchar ( MaxGet , sizeof ( MaxGet ) , $FF );
        writeln ( f ( 0 , 0 , n ));
        end;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?