1 条题解

  • 0
    @ 2022-10-2 15:29:11
    #include<bits/stdc++.h>
    using namespace std;
    int crax[20],cray[20],cx[20];
    int ans[20];
    int n,tot;
    
    void print(void)
    {
    	tot++;
    	for (int i=1;i<=n;i++)
    		cout<<setw(5)<<ans[i];
    	putchar('\n');
    }
    
    void search(int x)
    {
    	if (x>n) print();
    	for (int y=1;y<=n;y++)
    	{
    		if (crax[x+y]) continue;
    		if (cray[x-y+10]) continue;
    		if (cx[y]) continue;
    		ans[x]=y;
    		crax[x+y]=1;
    		cray[x-y+10]=1;
    		cx[y]=1;
    		search(x+1);
    		crax[x+y]=0;
    		cray[x-y+10]=0;
    		cx[y]=0;
    	}
    }
    
    int main(void)
    {
    	scanf("%d",&n);
    	search(1);
    	if (tot==0) puts("no solute!");
    	return 0;
    }
    
    
    
    • 1

    信息

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