NYOJ:19-擅长排列的小明
2017-06-21 22:53
267 查看
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字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
代码:
难度:4
描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字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 <iostream> #include <algorithm> #include <cstring> using namespace std; char a[10]={'1','2','3','4','5','6','7','8','9','\0'},b[10],c[10]; int main() { int n,m,i,x; cin>>n; while(n--) { cin>>m>>x; for(i=0; i<m; i++) b[i]=a[i]; b[x]='\0'; cout<<b<<endl; while(next_permutation(a,a+m)) { strcpy(c,a); c[x]='\0'; if(strcmp(b,c)) { cout<<c<<endl; strcpy(b,c); } } } return 0; }
相关文章推荐
- NYOJ 19 擅长排列的小明(dsf STL——next_permutation函数)
- nyoj19擅长排列的小明(STL)&&(DFS)
- nyoj 19 擅长排列的小明 【全排列(n中抽取m个数)】
- nyoj 19 擅长排列的小明 【next_permutation() 】
- NYOJ 19 擅长排列的小明
- nyoj19(擅长排列的小明)
- NYOJ 题目19 擅长排列的小明(非图DFS)
- nyoj19擅长排列的小明(递归)
- nyoj-19-擅长排列的小明
- nyoj 19擅长排列的小明 (DFS)
- NYOJ19 擅长排列的小明【next_permutation】
- nyoj 19 擅长排列的小明(深搜,next_permutation)
- NYOJ---19擅长排列的小明
- nyoj 19 擅长排列的小明
- NYOJ-19-擅长排列的小明
- NYOJ19 擅长排列的小明
- NYOJ-19 擅长排列的小明 -----回溯
- nyoj 19 擅长排列的小明
- nyoj--19 擅长排列的小明(dfs)
- nyoj 19 擅长排列的小明<按序排列>