ACW 1114. 棋盘问题
非常有意思的一道题 用m来作为以前的step 而step作为了行数 所以要添加不能越界
void dfs(int step){
if(m==k){
ans++;
return;
}
if(step==n+1)return;
for(int i=1;i<=n;i++){
if(!st[i]&&h[step][i]){
st[i]=1;
m++;
dfs(step+1);
st[i]=0;
m--;
}
}
dfs(step+1);
}
非常有意思的一道题 用m来作为以前的step 而step作为了行数 所以要添加不能越界
void dfs(int step){
if(m==k){
ans++;
return;
}
if(step==n+1)return;
for(int i=1;i<=n;i++){
if(!st[i]&&h[step][i]){
st[i]=1;
m++;
dfs(step+1);
st[i]=0;
m--;
}
}
dfs(step+1);
}