1 条题解
-
0
C++ :
#include <iostream> using namespace std; bool chess[10][10]; bool col[10]; int status; int n, k; int DFS(int row, int num) { int i; if (num == k) { status++; return 0; } if (row > n) return 0; for (i = 1; i <= n; i++) { if (chess[row][i] && !col[i]){ col[i] = true; DFS(row + 1, num + 1); col[i] = false; } } DFS(row + 1, num); return 0; } int main() { int i, j; char temp; while (cin >> n >> k) { if (n == -1 && k == -1) break; for (i = 0; i < 10; i++) for (j = 0; j < 10; j++) chess[i][j] = false; for (i = 0; i < 10; i++) col[i] = false; status = 0; for (i = 1; i <= n; i++) for (j = 1; j <=n; j++) { cin >> temp; if (temp == '#') { chess[i][j] = true; } } DFS(1, 0); cout << status << endl; } return 0; }
- 1
信息
- ID
- 858
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者