1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=10; bool st[N]; int ans[N]; int n; void dfs(int u) { if(u==n+1) //找到答案 { for(int i=1;i<=n;i++) { cout<<ans[i]<<" "; } cout<<endl; return ; } for(int i=n;i>=1;i--) { if(!st[i]) //当前分支i还没有使用过 { ans[u]=i; //第u个数填i st[i]=1; dfs(u+1);//往下走的分支的i已经使用过了。 st[i]=0;//接下来会换个分支,清除标记 } } } int main() { cin>>n; dfs(1); return 0; }
- 1
Information
- ID
- 1277
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 19
- Accepted
- 6
- Uploaded By