2 条题解

  • 0
    @ 2025-1-19 8:46:30

    #include #include #include #define MAX 110 using namespace std; int n; int sum; int ans[MAX]; int vis[3][MAX];///vis[0]代表列,vis[1]代表副对角线,vis[2]代表主对角线 void DFS(int x) { int i; if(xn+1) { sum++; if(sum<=3) { for(i=1; i<=n; i++) { if(i1) { printf("%d",ans[i]); } else { printf(" %d",ans[i]); } } printf("\n"); return ;
    }
    } for(i=1; i<=n; i++) { if(!vis[0][i]&&!vis[1][x+i]&&!vis[2][x-i+n]) { vis[0][i]=vis[1][x+i]=vis[2][x-i+n]=1; ans[x]=i; DFS(x+1); vis[0][i]=vis[1][x+i]=vis[2][x-i+n]=0;///状态恢复 } } } int main() { scanf("%d",&n); memset(ans,0,sizeof(ans)); memset(vis,0,sizeof(vis)); DFS(1); printf("%d\n",sum); }

    • 0
      @ 2024-10-14 20:18:58
      #include<cstdio>
      using namespace std;
      int n;
      int temp[50];
      int ass[5][100],ansnum;
      bool zuoshang[50],zuoxia[50];//zuoshang为\,zuoxia为/ 
      bool liel[50],hangh[50];
      int dfs(int hang);
      int main()
      {
      	freopen("checker.in","r",stdin);
      	freopen("checker.out","w",stdout);
      	scanf("%d",&n);
      	dfs(1);
      	for (int i=1;i<=3;i++)
      	{
      		for (int j=1;j<=n;j++)
      			printf("%d ",ass[i][j]);
      		printf("\n");
      	}
      	printf("%d",ansnum);
      	return 0;
      }
      int dfs(int hang)//现在在搜索第hang行 
      {
      	for (int i=1;i<=n;i++)//在n列里面找位置 
      	{
      		if (zuoshang[hang-i+n]==false&&zuoxia[hang+i]==false&&liel[i]==false)
      		{
      			zuoshang[hang-i+n]=true;
      			zuoxia[hang+i]=true;
      			liel[i]=true;
      			temp[hang]=i;
      			if (hang<=n-1)
      			{
      				temp[hang]=i;
      				dfs(hang+1);
      			} 
      			else
      			{
      				temp[hang]=i;
      				ansnum++;
      				if (ansnum<=3)
      				{
      					for (int j=1;j<=n;j++)
      					{
      						ass[ansnum][j]=temp[j];
      					}
      				}
      			}
      			zuoshang[hang-i+n]=false;
      			zuoxia[hang+i]=false;
      			liel[i]=false;
      		}
      	}
      }
      
      • 1

      信息

      ID
      23
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      112
      已通过
      27
      上传者