洛谷——P1706 全排列問題
阿新 • • 發佈:2017-11-17
radius 復制 -s 個數字 oid sample sam radi 要求
P1706 全排列問題
題目描述
輸出自然數1到n所有不重復的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重復的數字。
輸入輸出格式
輸入格式:
n(1≤n≤9)
輸出格式:
由1~n組成的所有不重復的數字序列,每行一個序列。每個數字保留5個常寬。
輸入輸出樣例
輸入樣例#1: 復制3輸出樣例#1: 復制
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1惡心的·輸出
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 20 using namespace std; bool vis[N]; int n,ans[N]; void dfs(int s) { if(s==n+1) { for(int i=1;i<=n;i++) printf("%5d",ans[i]); printf("\n"); return ; } for(int i=1;i<=n;i++) if(!vis[i]) vis[i]=true,ans[s]=i,dfs(s+1),vis[i]=false; } int main() { scanf("%d",&n); dfs(1); return 0; }
洛谷——P1706 全排列問題