Fire Net

来源:互联网 发布:淘宝王成勇培训靠谱吗 编辑:程序博客网 时间:2024/05/16 13:42
#include <iostream>#include <string.h>#include <stdio.h>using namespace std;char str[5][5];int  n, ans;bool check( int x, int y){    for( int i = x - 1; i >= 0; i--)    {        if(str[i][y] == 'O') return false;        if(str[i][y] == 'X') break;    }    for( int j = y - 1; j >= 0; j--)    {        if(str[x][j] == 'O') return false;        if(str[x][j] == 'X') break;    }    return true;}void solve( int k, int curnum){    if(k == n * n )    {       ans = max(ans, curnum);       return ;    }    int x, y;    x = k / n;    y = k % n;    if(str[x][y] == '.' &&  check(x, y))    {        str[x][y] = 'O';        solve( k + 1, curnum+1);        str[x][y] = '.';    }      solve(k+1,curnum);}int main(){    while(scanf("%d",&n) != EOF && n)    {        ans = 0;        for( int i = 0; i < n; i++)         for( int j = 0; j < n; j++)          cin>>str[i][j];        solve(0,0);        printf("%d\n",ans);    }
0 0
原创粉丝点击