104.全排列(深搜)搜索与回溯
生活随笔
收集整理的這篇文章主要介紹了
104.全排列(深搜)搜索与回溯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1294 全排列
?
時間限制: 1 s 空間限制: 128000 KB 題目等級 : 黃金 Gold 題解 查看運行結果 題目描述?Description給出一個n, 請輸出n的所有全排列
輸入描述?Input Description讀入僅一個整數n?? (1<=n<=10)
輸出描述?Output Description一共n!行,每行n個用空格隔開的數,表示n的一個全排列。并且按全排列的字典序輸出。
樣例輸入?Sample Input3
樣例輸出?Sample Output1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
數據范圍及提示?Data Size & Hint分類標簽?Tags?點此展開?
搜索 代碼: #include< cstdio > #include< iostream > using namespace std; int n,visit[11]; int a[11]; void dfs(int b) { if(b==n+1) { for(int i=1;i<=n;++i) printf("%d ",a[i]);//注意一定要把當前取得的點放到一個數組中去,到了最后時把數組輸出,否則如果是深搜的時候,每找到一個就輸出,會使輸出的數據不全*/? printf("\n"); return ; } for(int i=1;i<=n;++i) { if(!visit[i]) { visit[i]=1;//標志設為這個i已經在排列中了 a[b]=i; dfs(b+1); visit[i]=0;//回溯 a[b]=0; } } } int main() { scanf("%d",&n); int b=1; for(int i=1;i<=n;++i) { if(!visit[i]) { visit[i]=1; a[1]=i; dfs(b+1); visit[i]=0; a[1]=0; } } return 0; }?轉載于:https://www.cnblogs.com/c1299401227/p/5370719.html
總結
以上是生活随笔為你收集整理的104.全排列(深搜)搜索与回溯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 财付通被盗刷怎么办 冻结账户还会被盗刷
- 下一篇: 建设银行卡被单向冻结怎么处理