Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
136157 | 陈家宝 | 循环比赛 | C++ | 通过 | 100 | 0 MS | 396 KB | 674 | 2024-03-08 13:13:34 |
#include<bits/stdc++.h> using namespace std; int n,a[100][100]; bool used[100][100],b[100][100],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; }