您的位置:首页 > 其它

poj1321棋盘问题{wa}

2013-11-04 21:45 253 查看
var
  n,k,i,j,ans:longint;
  vx,vy:array[1..8] of boolean;
  map:array[1..8,1..8] of char;
procedure dfs(x,y,now:longint);
var
  j,l:integer;
begin
  if now=k then inc(ans)
  else
    begin
      for
i:=x+1 to n do
     
  for j:=1 to n do
     
    if (map[i,j]='#')and(not
vx[i])and(not vy[j])then
     
     
begin
     
     
  vx[i]:=true;
     
     
  vy[j]:=true;
     
     
  dfs(i,j,now+1);
     
     
  vx[i]:=false;
     
     
  vy[j]:=false;
     
      end;
    end;
end;
begin
  while true do
  begin
  readln(n,k);
  if (n=-1) and (k=-1) then halt;
  for i:=1 to n do
    begin
      for
j:=1 to n do
     
  read(map[i,j]);
     
readln;
    end;
  fillchar(vx,sizeof(vx),false);
  fillchar(vy,sizeof(vy),false);
  ans:=0;
  for i:=1 to n-k+1 do
    for j:=1 to n do
      if
map[i,j]='#' then
     
  begin
     
    vx[i]:=true;
     
    vy[j]:=true;
     
    dfs(i,j,1);
     
    vx[i]:=false;
     
    vy[j]:=false;
     
  end;
  writeln(ans);
  end;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: