首页 > Web开发 > 详细

ZOJ1002 Fire Net

时间:2020-02-12 22:55:35      阅读:66      评论:0      收藏:0      [点我收藏+]

直接暴力搜索即可~

#include<bits/stdc++.h>
using namespace std;
const int maxn=1014;
char s[maxn][maxn];
int n,ans;
int judge (int n,int m) {
    for (int i=n-1;i>=0;i--) {
        if (s[i][m]==O) return 0;
        if (s[i][m]==X) break;
    }
    for (int j=m-1;j>=0;j--) {
        if (s[n][j]==O) return 0;
        if (s[n][j]==X) break;
    }
    return 1;
}
void dfs (int k,int num) {
    int x,y;
    if (k==n*n) {
        if (num>ans) ans=num;
        return;
    }
    else {
        x=k/n;
        y=k%n;
        if (s[x][y]==.&&judge(x,y)) {
            s[x][y]=O;
            dfs (k+1,num+1);
            s[x][y]=.;
        }
        dfs (k+1,num);
    }
}
int main () {
    while (~scanf ("%d",&n)&&n) {
        ans=0;
        for (int i=0;i<n;i++) {
            getchar ();
            for (int j=0;j<n;j++)
            scanf ("%c",&s[i][j]);
        }
        dfs (0,0);
        printf ("%d\n",ans);
    }
    return 0;
}

 

ZOJ1002 Fire Net

原文:https://www.cnblogs.com/zhanglichen/p/12301332.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!