#include<iostream>
using namespace std;
int n, i, j, ans;
char s[5][5];
int c_put(int n, int m){for (i = n - 1; i >= 0; i--){//行数 向前寻找if (s[i][m] == 'O')//如果有碉堡则产生冲突return 0;if (s[i][m] == 'X')//如果在遇到碉堡之前遇到了墙壁 则可以放 直接跳出循环break;}for (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] == '.'&&c_put(x, y)){//判断是否为碉堡 是否产生冲突s[x][y] = 'O';//防止碉堡,并且标记dfs(k + 1, num + 1);s[x][y] = '.';}//如果单元格不可以放置dfs(k + 1, num);//否则就向下继续寻找;}
}
int main(){while (cin >> n&&n) {ans = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++)cin>>s[i][j];}dfs(0, 0);cout << ans << endl;}
}
#include<iostream>
using namespace std;
int n,i,j, ans;
char s[5][5];
int c_put(int n, int m){for(i=n-1;i>=0;i--){if(s[i][m] == '0')return 0;if ([i][m] == 'X')break;}for (j=m-1; j>=0; j--){if (s[n][j]=='O')return 0;

Fire Net C++相关推荐

  1. fzu 2150 Fire Game 【身手BFS】

    称号:fzu 2150 Fire Game :给出一个m*n的图,'#'表示草坪,' . '表示空地,然后能够选择在随意的两个草坪格子点火.火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧全部 ...

  2. fire.php,Fire PHP

    项目介绍: Fire PHP 是基于 PHP JavaScript开发的跨平台的Firefox 的扩充套件,即PHP调试插件,可以帮你debug 后端PHP 的程式,其使用的技术跟某些IDE 一样,要 ...

  3. ZOJ1002 Fire Net(非递归版)

    以前用递归的回溯搜索思路做过一次,参见ZOJ1002 Fire Net(递归版),今天想着用非递归的方法试试看,呵呵,比我想象中要难啊,主要还是堆栈里究竟放什么,这一点上思路一直没理清.因此用了整整一 ...

  4. UVA11624 Fire!(bfs)

    相信大家已经读过题目了,我就搬一下洛谷的翻译: 题目大意 你的任务是帮助Joe走出一个大火蔓延的迷宫.Joe每分钟可以走到上下左右4个方向的相邻格子之一,而所有着火的格子都会四周蔓延(即如果某个空格子 ...

  5. J - Fire! UVA - 11624

    J - Fire! UVA - 11624 题意:火每次能烧到上下左右,人碰到非墙的边界则逃火成功,求最短的逃离时间. 由于bfs每个位置最多入队出队一次,所以复杂度为 1e6 一发bfs直接TLE, ...

  6. 1709: Fire or Retreat(zzuli)

    水题,哎,可是第一次是因为编译错了,vs不知咋了,无奈: 后面几次又因为类型用了int错了,痛苦: 题目描述 在与科技水平远胜于我们的外星人的战斗最后,我们能够用来对外星装甲造成伤害的武器只剩下了-- ...

  7. xmpp 服务器配置 open fire for windows 及 spark 测试

    xmpp 服务器配置 open fire for windows 此文章为 XMPP windows服务器配置,使用的是 open fire 3.9.1.exe 1: 下载 open fire ope ...

  8. python3 命令行参数处理库 argparse、docopt、click、fire 简介

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse.docopt.click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. 本文作 ...

  9. Fire Workflow FAQ

    Fire Workflow 的Eclispe设计器插件上传到google code ,并有较详细的文档(2_通过设计器和模拟器快速了解Fire       Workflow.pdf,3_各种工作流模式 ...

  10. UVA11624 Fire!

    题目: 乔在迷宫中工作.不幸的是,迷宫的一部分着火了,迷宫的主人没有制定火灾的逃跑计划.请帮助乔逃离迷宫.根据乔在迷宫中的位置以及迷宫的哪个方块着火,你必须确定火焰烧到他之前,乔是否可以离开迷宫,如果 ...

最新文章

  1. Redis的keys命令到底有多慢?
  2. Method Swizzling的各种姿势
  3. linux下vi命令大全[转]
  4. mysql管理员操作
  5. Linux线程-互斥锁pthread_mutex_t
  6. 如何在 Java 中正确使用 wait, notify 和 notifyAll?
  7. -webkit-有意思的属性
  8. Android USB audio on Android platform
  9. spring security oauth2
  10. Ladon for Kali 2019
  11. Qt编程之实现属性窗口编辑器
  12. 电子计算机是采用什么进制法,计算机内部使用什么进制
  13. Android手机app启动的时候第一个Activity必须是MainActivity吗
  14. 地理信息系统矢量数据的组织形式 第一章:二维空间对象数据模型
  15. 模拟器左下方数字含义
  16. PS4游戏将登陆PC:一曲属于主机的悲歌
  17. 交换机端口假死(err-disable)解决方法
  18. Linux 之父自传《just for fun》读书笔记
  19. Springboot 自定义mybatis 拦截器,实现我们要的扩展
  20. 2人以上的选择,需要搭乘2人以上的用户,可以自带马扎安放在iCar后部。不过自带马扎

热门文章

  1. 利用iis服务器创建站点,如何使用iis建立一个网站
  2. 人工智能第四课:机器学习的数学基础
  3. C++ 对Ctrl+Z的解释
  4. Python 的OOP 面向对象编程基础
  5. shell脚本编程 逐行处理文本 将字符串转化为数组
  6. 使用Junit对Android应用进行单元测试
  7. linux环境下给文件加密/解密的方法
  8. SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
  9. 网上摘的数据缓存资料
  10. 某游戏中有轰炸机、直升机、重型坦克、轻型坦克、飞行兵、步兵等六大兵种