10.5做题——全排列(初赛复习)
生活随笔
收集整理的這篇文章主要介紹了
10.5做题——全排列(初赛复习)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1-n中取m個求全排列
#include<iostream> #include<cstring> using namespace std; const int N=25; int data[N]; bool used[N]; int i,j,n,m,k; bool flag; int main() {cin>>n>>m;memset(used,false,sizeof(used));for(i=1;i<=m;i++){data[i]=i;used[i]=true;}flag=true;while(flag){for(i=1;i<=m-1;i++)cout<<data[i]<<" ";cout<<data[m]<<endl;flag=false;for(i=m;i>=1;i--){used[data[i]]=false;for(j=data[i]+1;j<=n;j++)if(!used[j]){used[j]=true;data[i]=j;flag=true;break;}if(flag){for(k=i+1;k<=m;k++)for(j=1;j<=n;j++)if(!used[j]){data[k]=j;used[j]=true;break;}break;}}}return 0; }轉載于:https://www.cnblogs.com/wuhu-xiaoshen/p/4918641.html
總結
以上是生活随笔為你收集整理的10.5做题——全排列(初赛复习)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则常用知识默写
- 下一篇: BZOJ 4291: [PA2015]K