1 条题解

  • 0
    @ 2025-10-8 16:48:19

    scy视频

    #include<bits/stdc++.h>
    using namespace std;
    int n,a[35][35];
    bool row[30],col[30],LL[30],RR[30];
    void dfs(int x)
    {
        if(x==n+1)
        {
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                    if(a[i][j]==1)
                    {
                        printf("%d ",j);
                    }
                }
            }
        	printf("\n");
        }
        else
        {
            int i=x;
            for(int j=1;j<=n;j++)
            {
                if(row[i]==0&&col[j]==0&&LL[i-j+n]==0&&RR[i+j]==0)
                {
                    a[i][j]=1;
                    row[i]=col[j]=LL[i-j+n]=RR[i+j]=1;
                    dfs(x+1);
                    a[i][j]=0;
    				row[i]=col[j]=LL[i-j+n]=RR[i+j]=0;
                }
            }
        }
    }
    int main()
    {
        scanf("%d",&n);
        memset(row,0,sizeof(row));
        memset(col,0,sizeof(col));
        memset(LL,0,sizeof(LL));
        memset(RR,0,sizeof(RR));
        memset(a,0,sizeof(a));
        dfs(1);
        return 0;
    }
    
    • 1

    信息

    ID
    63
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    474
    已通过
    116
    上传者