洛谷 B3623 枚举排列

36 篇文章 0 订阅

题目描述

今有 n 名学生,要从中选出 k 人排成一列拍照。

请按字典序输出所有可能的排列方式。

输入格式

仅一行,两个正整数 n, k。

输出格式

若干行,每行 k 个正整数,表示一种可能的队伍顺序。

样例 #1

样例输入 #1

```
3 2
```

样例输出 #1

```
1 2
1 3
2 1
2 3
3 1
3 2
```

提示

对于 100% 的数据,1 ≤ k ≤ n ≤ 10。

解题过程

思路

读完题可以知道这是一道dfs的题目,所以就按照dfs的模版去做

第一部分

头文件+定义

a数组用来存储输出的数据,n和k为输入的数据,b数组判断每个数用没用过,flag也用来判断用没用过

第二部分

定义dfs函数

7~14:判断循环边界,如果数够了就输出

15~22:判断数是否用过,如果用过就跳过这个数

23~24,26~27:进入下一层

25:回溯


第三部分

输入,调用函数

完整代码

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值