擅长排列的小明

 1 #include <cstdio>
 2 #include <cstring>
 3 using namespace std;
 4 int vis[11];
 5 int ans[11];
 6 
 7 void dfs(int n,int m,int cur)
 8 {
 9     if(cur==m)
10     {
11         for(int i=0;i<m;i++)
12             printf("%d",ans[i]);
13         printf("
");
14         return ;
15     }
16     for(int i=1;i<=n;i++)
17     {
18         if(!vis[i])
19         {
20             vis[i]=1;
21             ans[cur]=i;
22             dfs(n,m,cur+1);
23             vis[i]=0;
24         }
25     }
26 }
27         
28 int main()
29 {
30     int N,n,m;
31     scanf("%d",&N);
32     while(N--)
33     {
34         memset(vis,0,sizeof(vis));
35         memset(ans,0,sizeof(ans));
36         scanf("%d%d",&n,&m);
37         dfs(n,m,0);
38     }
39     return 0;
40 }
全排列
原文地址:https://www.cnblogs.com/WDKER/p/5467933.html