4 条题解

  • -1
    @ 2023-1-5 15:54:02
    #include<bits/stdc++.h>
    using namespace std;
    int n,tot,b[15],c[30],d[30],a[15];
    void dfs(int k)
    {
    	if(k>n)
    	{
    		tot++;
    		return;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(!b[i]&&!c[k+i]&&!d[k-i+n])
    		{
    			a[k]=i;
    			b[i]=1;
    			c[k+i]=1;
    			d[k-i+n]=1;
    			dfs(k+1);
    			b[i]=0;
    			c[k+i]=0;
    			d[k-i+n]=0;
    		}
    	}
    }
    int main()
    {
    	cin>>n;
    	dfs(1);
    	cout<<tot;
    	return 0;
    }
    

    信息

    ID
    1637
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    221
    已通过
    87
    上传者