Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

记忆化搜索水题~~

Posted by This_poet at 2011-10-15 17:34:19 on Problem 2111
RT
贴代码
program leap2;//By_Thispoet

const
  maxn=365;
  ddx:Array[1..8]of Integer=(1,1,2,2,-1,-1,-2,-2);
  ddy:Array[1..8]of Integer=(2,-2,1,-1,2,-2,1,-1);

var
  i,j,k,m,n,p,q,ans             :Longint;
  f,map,frx,fry                 :Array[0..maxn,0..maxn]of Longint;
  posx,posy                     :Longint;
function check(i,j:Longint):Boolean;
begin
  if (i>n)or(j>n)or(i<=0)or(j<=0)then exit(false);
  exit(true);
end;

function dp(i,j:Longint):Longint;
var k,p,q:Longint;
begin
  if f[i,j]<>-1 then exit(f[i,j]);
  f[i,j]:=1;
  for k:=1 to 8 do
    begin
      p:=i+ddx[k];q:=j+ddy[k];
      if check(p,q) and (map[p,q]>map[i,j]) then
        begin
          if dp(p,q)+1>f[i,j] then
            begin
              f[i,j]:=f[p,q]+1;
              frx[i,j]:=p;
              fry[i,j]:=q;
            end else if (dp(p,q)+1=f[i,j])and(map[p,q]<map[frx[i,j],fry[i,j]]) then
              begin
                frx[i,j]:=p;fry[i,j]:=q;
              end;
        end;
    end;
  exit(f[i,j]);
end;


begin

  fillchar(f,sizeof(f),255);
  fillchar(frx,sizeof(frx),0);
  fillchar(fry,sizeof(fry),0);
  readln(n);
  ans:=0;
  for i:=1 to n do for j:=1 to n do read(map[i,j]);
  for i:=1 to n do
    for j:=1 to n do
      if dp(i,j)>ans then
        begin
          ans:=f[i,j];
          posx:=i;
          posy:=j;
        end else if (ans=f[i,j])and(map[i,j]<map[posx,posy]) then
          begin
            posx:=i;
            posy:=j;
          end;
  writeln(ans);
  while not ((posx=0)and(posy=0)) do
    begin
      writeln(map[posx,posy]);
      i:=posx;j:=posy;
      posx:=frx[i,j];
      posy:=fry[i,j];
    end;

end.

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator