1 条题解

  • 2
    @ 2026-8-13 9:52:59
    #include<bits/stdc++.h>
    using namespace std;
    bool row[100],x1[100],x2[100],laobeizha[100][100];
    int ans,n,laozhaji=0;
    bool check(int x,int y){
        return !row[y]&&!x1[x+y]&&!x2[n+x-y];
    }
    void dfs(int c){
        if(c==8){
            laozhaji+=1;
            cout<<"No."<<" "<<laozhaji<<endl;
            for(int i=0;i<8;i++){
                for(int j=0;j<8;j++){
                    cout<<laobeizha[i][j]<<" ";
                }
                cout<<endl;
            }
            return;
        }
        for(int i=0;i<8;i++){
            if(check(c,i)){
                row[i]=x1[c+i]=x2[n+c-i]=true;
                laobeizha[c][i]=1;
                dfs(c+1);
                row[i]=x1[c+i]=x2[n+c-i]=false;
                laobeizha[c][i]=0;
            }
        }
    }
    int main(){
        dfs(0);
        return 0;
    }//答案包对,但输出顺序不对,人话就是AC不了
    
  • 1

信息

ID
374
时间
1000ms
内存
256MiB
难度
7
标签
(无)
递交数
35
已通过
10
上传者