poj1321棋盘问题{wa}

来源:互联网 发布:专心软件怎么签到 编辑:程序博客网 时间:2024/05/17 01:19
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
      fori:=x+1 to n do
       for j:=1 to n do
         if (map[i,j]='#')and(notvx[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
      forj:=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
      ifmap[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.
原创粉丝点击