#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
char map[5][5];
int res;
int n;
bool judge(int x, int y)
{
if (map[x][y] != '.')
return false;
for (int i = x - 1; i >= 0; i--)
{
if (map[i][y] == 'X')
break;
if (map[i][y] == 'O')
return false;
}
for (int i = y - 1; i >= 0; i--)
{
if (map[x][i] == 'X')
break;
if (map[x][i] == 'O')
return false;
}
return true;
}
void dfs(int x, int y,int tot)
{
if (x == n && y == 0)//判断是否搜索结束
{
res = max(res, tot);
return;
}
if (y == n)//这一行搜索完了进行下一行
{
dfs(x + 1, 0, tot);
return;
}
for (int i = y; i < n; i++)//对这一行每一列都搜索
{
if (judge(x, i))//符合条件才有继续搜索的价值
{
map[x][i] = 'O';
dfs(x, i + 1, tot + 1);
map[x][i] = '.';//路不通的时候回溯恢复map的内容
}
}
dfs(x + 1, 0, tot);//这一行没有符合的元素搜索下一行
}
int main()
{
while (cin>>n)
{
if (n == 0)
break;
res = 0;
for (int i = 0; i<n; i++)
cin>>map[i];
dfs(0, 0, 0);
cout<<res<<endl;
}
return 0;
}
1045堡垒冲突问题
原创PeterBishop ©著作权
©著作权归作者所有:来自51CTO博客作者PeterBishop的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:1050房间桌椅转移
下一篇:豆豆战场
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
依赖冲突问题
上篇文章中,小黑哥分析 Maven 依赖冲突分为两类: 项目同一依赖应用,存在多版本,每个版本同一个类,
冲突 依赖 加载 jar 类加载器 -
命名空间冲突问题
例:“map”: 不明确的符号#ifdef _MAP_#undef _MAP_#endif
c++ #endif #ifdef -
druid 连接池 statement is closed
前言本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢??我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这个数据库连接池是挺强大的。看过的一些书上也是多数介绍了这两种数据库连接池,自己做的Demo也是使用C3P0。可是现在看起来这两种都不够了~业界发展得真快呀 上面的我就没有打码了,都是
druid 多数据源 druid监控页面 druid连接池 druid连接池配置 druid连接池配置详解 -
为什么python地址给我双斜杠
1.Python &n
为什么python地址给我双斜杠 Python python Java