# zoj1002 Fire Net

1. //zoj1002 Fire Net
2. //Accepted 1002 C++ 00:00.01 436K
3. #include <stdio.h>
4. int n;
5. int max;
6. char map[5][5];
7. bool canput(int x, int y)
8. {
9.        int i,j;
10.        if (map[x][y]!='.') return false;
11.        for (i=x+1; i<n; i++){
12.               if (map[i][y]=='X') break;
13.               if (map[i][y]=='O') return false;
14.        }
15.        for (i=x-1; i>=0; i--){
16.               if (map[i][y]=='X') break;
17.               if (map[i][y]=='O') return false;
18.        }
19.        for (j=y+1; j<n; j++){
20.               if (map[x][j]=='X') break;
21.               if (map[x][j]=='O') return false;
22.        }
23.        for (j=y-1; j>=0; j--){
24.               if (map[x][j]=='X') break;
25.               if (map[x][j]=='O') return false;
26.        }
27.        return true;
28. }
29. bool finish()
30. {
31.        for (int i=0; i<n; ++i)
32.               for (int j=0; j<n; ++j)
33.                      if (canput(i,j))
34.                             return false;
35.        return true;
36. }
37. void backtrack(int num)
38. {
39.        if (finish()){
40.               if (num>max) max = num;
41.               return ;
42.        }
43.        for (int i=0; i<n; ++i)
44.               for (int j=0; j<n; ++j)
45.                      if (canput(i,j)){
46.                             map[i][j] = 'O';
47.                             backtrack(num+1);
48.                             map[i][j] = '.';
49.                      }
50. }
51. void solve()
52. {
53.        getchar();
54.        for (int i=0; i<n; ++i){
55.               for (int j=0; j<n; ++j)
56.                      scanf ("%c",&map[i][j]);
57.               getchar();
58.        }
59.        max = 0;
60.        backtrack(0);
61.        printf ("%d/n",max);
62. }
63. int main()
64. {
65. #ifdef ONLINE_JUDGE
66. #else
67.        freopen("1002.txt","r",stdin);
68. #endif
69.        while (scanf("%d",&n)!=EOF && n)
70.               solve();
71. #ifdef ONLINE_JUDGE
72. #else
73.        fclose(stdin);
74. #endif
75.        return 0;
76. }
• 本文已收录于以下专栏：

## zoj1002-Fire Net

• acm_JL
• 2016年03月14日 19:27
• 963

## zoj 1002 Fire Net（DFS~ 哈哈哈哈，终于过了！！！）

1002 从一开始做ACM就郁闷的一道题，在1001下面它应该觉得压力很大啊！！哈哈。。 做完八皇后，党说这个能做了。。。 嘿嘿。这题是找放置最多数目的blockhouses（碉堡。。）使之不能同行同...
• zxy_snow
• 2010年10月19日 23:15
• 8703

## zoj1002（Fire Net）

• shiqining888
• 2014年11月07日 20:48
• 227

## [DFS]zoj1002 Fire Net

B - Fire Net Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitSt...
• u012848631
• 2015年07月24日 12:40
• 277

## ZOJ1002 FIRE NET

ZOJ 1002
• yao_wust
• 2014年09月12日 11:02
• 617

## ZOJ1002 Fire Net

#includeusing namespace std;int n;char str[4][4];int maxNum;void handleX(int,int);bool judge(int,in...
• shamoqiuyin
• 2010年10月01日 11:41
• 223

## [题解] ZOJ1002 -- Fire Net

Java复习
• 2014年04月18日 16:28
• 585

## ZOJ1002 Fire Net(二分图匹配)

• C20142407
• 2015年07月28日 15:33
• 380

## zoj1002 Fire Net

Fire Net Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu ...
• acm_1361677193
• 2015年07月30日 12:28
• 107

## ZOJ1002 Fire Net(DFS)

Problem Description Suppose that we have a square city with straight streets. A map of a city is a ...
• weixin_40061167
• 2017年10月20日 19:50
• 51

举报原因： 您举报文章：zoj1002 Fire Net 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)