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