您的位置:首页 > 其它

NYOJ 19 擅长排列的小明 DFS

2016-07-09 18:24 281 查看
擅长排列的小明

时间限制:1000 ms | 内存限制:65535 KB

难度:4

描述

小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。

输入

第一行输入整数N(1

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;

int T,N,M;
char ans[11];
int vis[11];

void dfs(int n,int k){
ans[k]='0'+n;
if(k==M-1){
ans[M]='\0';
cout<<ans<<endl;
return ;
}
ans[k]='0'+n;
vis
=1;
for(int i=1;i<=N;i++){
if(!vis[i]){
dfs(i,k+1);
}
}
vis
=0;
}

int main()
{
scanf("%d",&T);
while(T--){
scanf("%d%d",&N,&M);
for(int i=1;i<=N;i++){
memset(vis,0,sizeof(vis));
dfs(i,0);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: