1002 从一开始做ACM就郁闷的一道题,在1001下面它应该觉得压力很大啊!!哈哈。。

做完八皇后,党说这个能做了。。。

嘿嘿。这题是找放置最多数目的blockhouses(碉堡。。)使之不能同行同列,除非中间有个FIRENET。。。(同行同列就打中了。。)

开始想得比较复杂,按八皇后的思想,一行一行找,效果不好,一直不对,想明白了,一行不一定就放一个,一行也不一定放啊。。。当然,不放肯定全是防火墙了。。。

照党说的,全搜得了,原来是一行一行搜的,现在是一个一个搜,如果可以放(即满足条件),就标记。。。剩下的就是普通DFS做法了。

做完很有成就感 (*^__^*) 嘻嘻…… 终于把这个拿下了 /(^o^)/

#include <stdio.h> #include <stdlib.h> #include <iostream> #include <memory.h> using namespace std; int visit[10][10],mmax,n,cou; //visit里,0是啥都没放,1是放了碉堡,2是放了防火墙 //cou计数放的个数,mmax记录最大cou的最大值,即题目要求值 int find(int x,int y) // 判断是否可以放置 { for(int i=y; i>=1; i--) //四个循环,从点(X,Y)上下左右判断,如果有碉堡,返回0,如果有墙,继续下个循环。 { if( visit[x][i] == 1 ) return 0; if( visit[x][i] == 2 ) break; } for(int i=y; i<=n; i++) { if( visit[x][i] == 1 ) return 0; if( visit[x][i] == 2 ) break; } for(int i=x; i>=1; i--) { if( visit[i][y] == 1 ) return 0; if( visit[i][y] == 2 ) break; } for(int i=x; i<=n; i++) { if( visit[i][y] == 1 ) return 0; if( visit[i][y] == 2 ) break; } return 1; } // DFS void DFS() { if( cou > mmax ) mmax = cou; for(int k=1; k<=n; k++) for(int h=1; h<=n; h++) if( !visit[k][h] && find(k,h) ) { visit[k][h] = 1; cou++; DFS(); visit[k][h] = 0; cou--; } } int main(void) { char str[10]; while( cin >> n && n) { mmax = 0; cou = 0; for(int i=1; i<=n; i++) { cin >> str; for(int k=0; k<n; k++) visit[i][k+1] = (str[k] == 'X' ? 2 : 0 ); } DFS(); cout << mmax << endl; } return 0; }

zoj 1002 Fire Net(DFS~ 哈哈哈哈,终于过了!!!)相关推荐

  1. zoj 1002 Fire Net 碉堡的最大数量【DFS】

    题目链接 题目大意: 假设我们有一个正方形的城市,并且街道是直的.城市的地图是n行n列,每一个单元代表一个街道或者一块墙. 碉堡是一个小城堡,有四个开放的射击口.四个方向是面向北.东.南和西.在每一个 ...

  2. poj 1564 Sum It Up | zoj 1711 | hdu 1548 (dfs + 剪枝 or 判重)

    Sum It Up Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Sub ...

  3. 碉堡了的kotlin扩展函数

    //下面的方法存在于一个方法体中 // var isContainQSSQ2 = "ddddd2".isContainerQSSQ()//there not isContainer ...

  4. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

  5. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

    水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法:        (1)枚举 (1753,2965)       (2)贪心(13 ...

  6. ZOJ 题目分类,学校的一个巨巨做的。

     DP: 1011      NTA                    简单题 1013      Great Equipment        简单题 1024      Calendar ...

  7. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  8. ACM POJ 题目分类(完整整理版本)

    DP: 1011   NTA                 简单题  1013   Great Equipment     简单题  1024   Calendar Game       简单题   ...

  9. pku,zju题目分类

    哎呦喂,直接ctrl+A了.话说浙江大学的题还见过的呢.. 公告: [意见反馈][官方博客]   ural pku Zju 题目分类 收藏   感谢 mugu 的提供.... Ural Problem ...

最新文章

  1. 2022-2028年中国麻纺织业投资分析及前景预测报告
  2. Spring Cloud Config-Git后端
  3. JSP指令与动作——include forward param
  4. DB2 V8,V9并存在同一 server 的处理
  5. 如何使用html和css,如何使用html和css制作这个div?
  6. js,jquery字符串转换json,兼容各种浏览器
  7. jq关于对象类型的判断
  8. 实现对gridview删除行时弹出确认对话框的四种方法
  9. 首期openGauss训练营结营,48个FAQ和全部PPT通通给你,随附62人结营学员名单
  10. 《数据结构与算法 Python语言描述》 读书笔记
  11. iPhone 13 Pro苍岭绿真机首曝!网友:这次iPhone被渲染图坑惨了
  12. C++ 出现异常“.... \debug_heap.cpp Line:980 Expression:__acrt_first_block==header“
  13. 数据分析学习笔记—python简单操作EXCEL
  14. IOCP线程池的开发-(2)
  15. 选择BI工具需注意什么
  16. 微软 Fluent 设计体系, Fluent UI
  17. cd linux如何连接wifi,cdlinux万能无线系统使用教程
  18. 简述软件测试自动化的作用,什么是自动化测试?了解一下~
  19. linux 查看链接文件,Linux下的链接文件详解
  20. 使用U盘重装MacBook Air时用到的工具和镜像

热门文章

  1. Excel常用办公技巧(持续更新)
  2. 密歇根计算机科学与工程硕士录取,美国工科牛校UMich密歇根大学电子工程EE硕士录取...
  3. 秘密潜入1-榴弹枪射速修改-Python源码
  4. 全球首颗量子卫星炼成记:“墨子号”打造保密通信新产业
  5. Linux驱动|rtc-hym8563移植笔记
  6. Kyan 网络监控设备 hosts 账号密码泄露漏洞
  7. 休假管理系统——设计类图
  8. 虫师selenium3+python自动化测试电子版_Selenium3 Java自动化测试实战 第三版.pdf
  9. Hive的安装与配置——第1关:Hive的安装与配置
  10. 最能拉出同行差距的细节,99%的零售店老板都错过了