4 条题解
-
0
#include using namespace std; const int N =105; int n; int a[N]; bool used[N]; void dfs(int dep){ if(dep > n) { for(int i=1; i<=n;i++) { cout<<a[i]<<" "; } cout<<endl; return; } for(int i =1;i<=n;i++) { if(used[i]) continue; used[i] =1; a[dep]=i; dfs(dep+1); used[i]=0; } } int main() {
cin>>n; dfs(1); return 0;}
-
-1
#include<bits/stdc++.h> using namespace std; const int N=9+5; int a[N];//放置数的数组 int vis[N];//检查数有没有放置 int n; void dfs(int dep){ if(depn+1){//如果放完 for(int i=1;i<=n;i++){ cout<<a[i]<<" \n"[in];//输出 } return;//结束 } for(int i=1;i<=n;i++){ if(!vis[i]){//如果没有放置过 a[dep]=i;//放置 vis[i]=1;//已经放置 dfs(dep+1); vis[i]=0;//没有放置 } } } int main(){ cin>>n; dfs(1);//初始 } //不要直接抄
-
-2
#include<bits/stdc++.h> using namespace std; const int N = 105; int n; int a[N]; bool used[N]; void dfs(int dep) { if(dep > n) { for(int i = 1; i <= n; i++) { cout << a[i] << " "; } cout << endl; return; } for(int i = 1; i <= n; i++) { if(used[i]) continue; a[dep] = i; used[i] = 1; dfs(dep + 1); used[i] = 0; } } int main() { cin >> n; dfs(1); return 0; } -
-4
#include<iostream> using namespace std; const int N =105; int n; int a[N]; bool used[N]; void dfs(int dep){ if(dep > n) { for(int i=1; i<=n;i++) { cout<<a[i]<<" "; } cout<<endl; return; } for(int i =1;i<=n;i++) { if(used[i]) continue; used[i] =1; a[dep]=i; dfs(dep+1); used[i]=0; } } int main() { cin>>n; dfs(1); 点赞后抄 }
- 1
信息
- ID
- 370
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 291
- 已通过
- 115
- 上传者