5 条题解

  • 0
    @ 2025-2-28 13:04:29
    #include<bits/stdc++.h>
    using namespace std;
    int n,ans,c[25],zd[60],fd[60];
    void dfs(int s)
    {
    	if(s>n){
    		ans++;
    		return;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(c[i]==0&&zd[s-i+n]==0&&fd[s+i]==0)
    		{
    			c[i]=1;
    			zd[s-i+n]=1;
    			fd[s+i]=1;
    			dfs(s+1);
    			c[i]=0;
    			zd[s-i+n]=0;
    			fd[s+i]=0;
    		}
    	}
    }
    int main()
    {
    	cin>>n;
    	dfs(1);
    	cout<<ans;
    	return 0;
    }
    

    信息

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