1 条题解
-
0庄力 (zhuangli2018) LV 10 @ 2022-11-17 16:30:13
#define MAX 110 using namespace std; int n,sum,ans[MAX],vis[3][MAX]; void dfs(int x){ int i; if(x==n+1){ sum++; if(sum<=3){ for(i=1; i<=n; i++){ if(i==1)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); }
- 1
信息
- ID
- 564
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 26
- 已通过
- 7
- 上传者