题解
简单DFS.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, m, t;
int p[10], vis[10];
void dfs(int pos)
{
if(pos == m)
{
for(int i = 0; i < m; ++i) cout << p[i];
cout << endl;
return ;
}
for(int i = 1; i <= n; ++i)
{
if(!vis[i]){
p[pos] = i;
vis[i] = 1;
dfs(pos + 1);
vis[i] = 0;
}
}
}
int main()
{
for(cin >> t; t--; )
{
cin >> n >> m;
memset(vis, 0, sizeof(vis));
dfs(0);
}
}