AcWing 1114. 棋盘问题
原题链接
简单
作者:
三鹤亥一
,
2025-04-01 14:12:10
· 山东
,
所有人可见
,
阅读 4
import sys
N = 10
g = [[0] * N for i in range(N)]
col = [False] * N
cnt = 0
ans = 0
def dfs(u, cnt):
global ans
if cnt == k:
ans += 1
return
if u == n:
return
for i in range(n):
if g[u][i] == '#' and not col[i]:
col[i] = True
dfs(u + 1, cnt + 1)
col[i] = False
dfs(u + 1, cnt)
while True:
n, k = map(int, sys.stdin.readline().split())
if n == -1 or k == -1:
break
g = []
ans = 0
col = [False] * N
for i in range(n):
row = sys.stdin.readline().strip()
g.append(list(row))
dfs(0, 0)
print(ans)