输出全排列的方案

来源:互联网 发布:淘宝里api什么意思 编辑:程序博客网 时间:2024/06/06 01:21

全排列数值有公式这里写图片描述 非常简单
但是要求输出具体方案怎么办呢?
用dfs实现很简单,这里只针对不同元素的全排列,有相同的再另外考虑吧

#include<iostream>#include<algorithm>using namespace std;int a[100],visited[100]={0};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=0;i<n;i++){//从0开始        if(visited[i]==0){            visited[i]=1;            path[len]=a[i];            dfs(i,len+1);            visited[i]=0;        }    }}int main(){    cin>>n>>m;    for(int i=0;i<n;i++)        cin>>a[i];    sort(a,a+n);//使字典序最小    dfs(0,0);}
0 0
原创粉丝点击