输出组合排列的方案

来源:互联网 发布:淘宝里api什么意思 编辑:程序博客网 时间:2024/05/18 00:42

组合排列数值公式这里写图片描述
要求输出具体方案用dfs实现非常简单,这里只针对不同元素

#include<iostream>#include<algorithm>using namespace std;int a[100];int n,m;int path[100];void dfs(int cur,int len){    if(len==m){        for(int i=0;i<len;i++)            cout<<path[i]<<ends;        cout<<endl;        return;    }    for(int i=cur;i<n;i++){//从cur开始而不是从0开始,这是不同于全排列的地方        path[len]=a[i];        dfs(i+1,len+1);    }}int main(){    cin>>n>>m;    for(int i=0;i<n;i++)        cin>>a[i];    sort(a,a+n);//使字典序最小    dfs(0,0);}
0 0