题目链接:点击打开链接
直接模拟
代码
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
#define ll long long
using namespace std;
int n, k;
int sum;
bool visit[26];
char s[30];
bool solve(int cont)
{
if (cont == n)
{
s[n] = '\0';
puts(s);
sum++;
if (sum == k)
return true;
return false;
}
for (int i = 0; i < n; i++)
{
if (!visit[i])
{
s[cont] = 'A' + i;
visit[i] = true;
if (solve(cont + 1))
return true;
visit[i] = false;
}
}
return false;
}
int main()
{
int test;
scanf("%d", &test);
for (int cas = 1; cas <= test; cas++)
{
scanf("%d%d", &n, &k);
sum = 0;
memset(visit, false, sizeof(visit));
printf("Case %d:\n", cas);
solve(0);
}
return 0;
}