JOJ 1017 FireNet
来源:互联网 发布:telnet 1433端口不通 编辑:程序博客网 时间:2024/04/28 21:30
题目:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1017
非常简单的回溯,没有用任何的限界函数就可以AC。代码如下:
- #include <cstdio>
- int n;
- char m[5][5];
- int ans, cn;
- bool ok(int i, int j) {
- if(m[i][j] == 'X')
- return false;
- for(int t = j-1; t >= 1 && m[i][t] != 'X'; t--) {
- if(m[i][t] == '*')
- return false;
- }
- for(int t = i-1; t >= 1 && m[t][j] != 'X'; t--) {
- if(m[t][j] == '*')
- return false;
- }
- return true;
- }
- void backtrack(int i, int j) {
- if(i > n) {
- if(cn > ans) {
- ans = cn;
- }
- return;
- }
- if(ok(i, j)) {
- m[i][j] = '*';
- cn++;
- if(j >= n) {
- backtrack(i+1,1);
- } else {
- backtrack(i, j+1);
- }
- m[i][j] = '.';
- cn--;
- }
- if(j >= n) {
- backtrack(i+1, 1);
- } else {
- backtrack(i, j+1);
- }
- }
- int main() {
- freopen("in.txt", "r", stdin);
- while(scanf("%d", &n), n) {
- for(int i = 1; i <= n; i++) {
- scanf("%s", &m[i][1]);
- }
- ans = 0;
- cn = 0;
- backtrack(1,1);
- printf("%d/n", ans);
- }
- return 0;
- }
- JOJ 1017 FireNet
- hdoj1045(FireNet 深搜)
- zoj 1002 FireNet
- ZOJ 1002 firenet ( DFS)
- JOJ 2257
- joj 2319
- joj 2653
- JOJ 2687
- joj 2693
- joj 2443
- joj 1173
- joj 1003
- joj 1066
- joj 1182
- joj 1195
- joj 1509
- joj 2526
- joj 2426
- JavaScript获取元素在浏览器画布中的绝对位置
- spring 事务传播属性解析
- 回答一些朋友的收掠问题(二)(转自:老公婆)
- 扩展方法Select无重载单一方式实现示例
- 模板学习笔记
- JOJ 1017 FireNet
- JVM中方法区
- 为什么开发者写程序时不应该调用‘sun’包
- 如何在桌面打开终端进行命令操作
- It's a programmer's blog
- linux2.6内核 list_head结构分析
- null与""的区别
- P2psim 源代码分析二
- C++ boost 库(先贴点资料有时间再研究)