nyoj--19--擅长排列的小明(dfs)
2015-12-08 20:25
323 查看
擅长排列的小明
时间限制:1000 ms | 内存限制:65535 KB[align=center]难度:4[/align]
描述 小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
输入第一行输入整数N(1<N<10)表示多少组测试数据,
每组测试数据第一行两个整数 n m (1<n<9,0<m<=n)输出在1-n中选取m个字符进行全排列,按字典序全部输出,每种排列占一行,每组数据间不需分界。如样例样例输入
2 3 1 4 2
样例输出
1 2 3 12 13 14 21 23 24 31 32 34 41 42 43
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int num[10010],vis[10010];
int n,k;
void dfs(int p)
{
if(p>k)
return ;
for(int i=1;i<=n;i++)
{
if(!vis[i])
{
num[p]=i;
vis[i]=1;
if(p==k)
{
for(int i=1;i<=k;i++)
printf("%d",num[i]);
printf("\n");
}
dfs(p+1);
vis[i]=0;
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(vis,0,sizeof(vis));
scanf("%d%d",&n,&k);
dfs(1);
}
return 0;
}
相关文章推荐
- [LeetCode]024-Swap Nodes in Pairs
- Linux学习笔记(十七、Shell概述)
- lambda表达式:函数式接口
- Office365上启用Skype For Business并实现本地AD用户登录
- JavaEE_Mybatis_SpringMVC_SpringMVC_SpringMVC的Model中数据的作用域(位置)
- [TwistedFate]数据库初级使用
- Windows环境下java编译出错的解决方法
- OpenSSH 仅用于端口转发(仅使用SSH隧道,禁止Shell)
- 使用KNN对MNIST数据集进行实验
- php加密技术
- nyoj--19--擅长排列的小明(dfs)
- c++ 异常 discards qualifiers 丢弃
- 北大OJ1003
- 创建用户报错ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
- PAT 1023 组个最小数
- 扫雷2
- js中的open()函数相关的全部知识点
- android wifi 无缝切换
- lintcode 1: Data Stream Median
- 千兆以太网规范