Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127381 | 刘星辰liuxingchen | 循环比赛 | C++ | 通过 | 100 | 0 MS | 388 KB | 828 | 2024-01-25 08:54:13 |
#include<bits/stdc++.h> using namespace std; int n; int a[100][100]; bool used[100][100]; bool b[100][100]; bool yes; void dfs(int now,int x,int y) { if(now==n*(n-1)) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<a[i][j]; if(a[i][j]/10>=1) { cout<<" "; } else { cout<<" "; } } cout<<endl; } exit(0); } for(int i=1;i<=n;i++) { if(used[x][i]==0 && b[y][i]==0) { used[x][i]=1; b[y][i]=1; a[x][y]=i; if(y==n) { dfs(now+1,x+1,1); } else { dfs(now+1,x,y+1); } used[x][i]=0; a[x][y]=0; b[y][i]=0; } } } int main() { cin>>n; n=pow(2,n); for(int i=1;i<=n;i++) { a[1][i]=i; b[i][i]=1; } dfs(0,2,1); return 0; } /* 1 2 3 3 1 2 2 3 1 */