全排

#include <iostream>
#include <string>
#include <set>
#include <map>
#include <vector>
#include <stack>
#include <queue>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

void DFS(int k,int n,int m);
int p[10]= {0};
int pp[1000][10]= {{0}};
int visit[10]= {0};

int main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    DFS(m,n,m);
    return 0;
}
int t=1;

void DFS(int k,int n,int m)
{
    int i,j;
    if(k==1+n)
    {
        for(j=1; j<=10; j++)
        {
            pp[t][j]=p[j];
        }
        t++;
    }
    else
    {
        for(i=m; i<=n; i++)
        {
            if(visit[i]==0)
            {
                visit[i]=1;
                p[k]=i;
                DFS(k+1,n,m);
                p[k]=visit[i]=0;
            }
        }
    }
}
原文地址:https://www.cnblogs.com/mengzhong/p/4330948.html