(回溯4)部分全排列
生活随笔
收集整理的這篇文章主要介紹了
(回溯4)部分全排列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目設有n個整數的集合{1,2,…,n},從中任意取出r個數進行排列(r< n),試著列出所有排列
#include <iostream> using namespace std; bool vis[100]; int total=0; int ans[100];//輸出結果 void print(int r){// if(total==5) return ;total++;cout<<"<"<<total<<">"<<endl;for(int i=1;i<=r;i++){cout<<ans[i]<<" ";}cout<<endl; } void search(int t,int n,int r){if(t==r+1) print(r);//取r個數的限制條件for(int i=1;i<=n;i++){if(!vis[i]){//判斷是i否出現過ans[t]=i,vis[i]=1;search(t+1,n,r);vis[i]=0;}} } int main(){int n,r;cin>>n>>r;search(1,n,r);cout<<total<<endl;return 0; }總結
以上是生活随笔為你收集整理的(回溯4)部分全排列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用next_permutation解答
- 下一篇: 不用数组,解决众数问题(前提 :众数出现