hdu 1045

来源:互联网 发布:电脑防辐射软件 编辑:程序博客网 时间:2024/06/04 19:09
#include<stdio.h>int n,max;int map[10][10];bool build (int row,int col){int i;for(i=row;i>=0;i--){if(map[i][col]=='0')return false;if(map[i][col]=='X')break;}for(i=col;i>=0;i--){if(map[row][i]=='0')return false;if(map[row][i]=='X')break;}return true;}void dfs(int i,int num){int row,col;if(i==n*n){if(num>max)max=num;return;}    else{row=i/n;col=i%n;    if(map[row][col]=='.'&&build(row,col)==true){map[row][col]='0';dfs(i+1,num+1);map[row][col]='.';}dfs(i+1,num);}}int main(){int i,j;while(scanf("%d",&n),n!=0){getchar();for(i=0;i<n;i++){for(j=0;j<n;j++)scanf("%c",&map[i][j]);getchar();}max=0;dfs(0,0);printf("%d\n",max);}return 0;}

0 0
原创粉丝点击