⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fire net.txt

📁 以前ACM在哈工程HRBEU做的一些简单题目
💻 TXT
字号:
#include <iostream> 
using namespace std; 

const int MAX_N = 4; 

char map[MAX_N][MAX_N]; 
int n, nMaxCount; 

bool CanPut(int row, int col) 
{ 
int i; 
for (i = row - 1; i >= 0; i--) 
{ 
  if (map[i][col] == 'O') return false; 
  if (map[i][col] == 'X') break; 
} 
for (i = col - 1; i >= 0; i--) 
{ 
  if (map[row][i] == 'O') return false; 
  if (map[row][i] == 'X') break; 
} 
return true; 
} 

void PutBlockhouses(int pos, int count) 
{ 
if (pos == (n * n)) 
{ 
  if (count > nMaxCount) 
  { 
   nMaxCount = count; 
  } 
} 
else
{ 
  int row = pos / n; 
  int col = pos % n; 
  if ((map[row][col] == '.') && (CanPut(row, col)))
  { 
   map[row][col] = 'O'; 
   PutBlockhouses(pos + 1, count + 1); 
   map[row][col] = '.'; 
  } 
  PutBlockhouses(pos + 1, count); 
} 
} 


int main() 
{ 
cin >> n; 
while (n > 0) 
{ 
  for (int i = 0; i < n; i++) 
   for (int j = 0; j < n; j++) 
    cin >> map[i][j];  
  nMaxCount = 0; 
  PutBlockhouses(0, 0); 
  cout << nMaxCount << endl; 
  cin >> n; 
} 
return 0; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -