S40203.2-3 拼合阴影

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

2-3 拼合阴影

拼合阴影

CC把地鼠网的节点清单摊在控制台上——nn 个光点,需要从中选 mm 个安装干扰器。选错了,Zero会立刻发现;选对了,地鼠网会出现一个盲区,你们可以从盲区穿过去。

"怎么选?"CC问。

"一个个试。"你说,"但不是乱试——用递归。"

Echo调出递归树的可视化模型。屏幕上,一棵倒置的树从顶端向下生长:根是一个空的选择,第一层分叉成"选1"和"不选1",第二层从"选1"分出"选2"和"不选2",同时"不选1"也分出"选2"和"不选2"……

"每一个叶子都是一种选法。"你说,"但我们只要恰好选 mm 个的叶子。"

CC盯着那棵树看了几秒:"这就像走迷宫,每个岔路选一个方向?"

"比迷宫简单。迷宫能回头,递归树不能——选了就是选了,只能往下走。"

她点点头,开始自己写。她的代码变量名总是很简单——a、b、c——但逻辑清晰。第一次运行,输出顺序乱了;第二次,重复了;第三次,通过了。

屏幕上弹出了所有合法的组合。CC从上到下扫了一眼,忽然在第47行停住。

"又是47。"她说。

你凑过去看。第47行的组合——选中的节点分布在整个地鼠网的边缘,彼此之间的距离最大。

"为啥子选这行?"你问。

"不晓得。"她说,"就是觉得...这行的节点分布最散,Zero最难一网打尽。"

Echo在旁边看着,投影光晕柔和了一些:"你的直觉...很接近最优解。第47行的组合,节点的最大间距确实最大。"

CC愣了一下,然后笑了——那是她三天来第二次笑:"我厉害吧?"

"厉害。"

"那当然。"


题目描述

1n1 \sim n 中选 mm 个。按字典序输出所有组合。

输入格式

n,mn, m

输出格式

所有组合,每行一个,内部空格分隔。

输入样例

5
3

输出样例

1 2 3 
1 2 4 
1 2 5 
1 3 4 
1 3 5 
1 4 5 
2 3 4 
2 3 5 
2 4 5 
3 4 5

提示

  • 从当前位置开始,对每个数字决定选或不选。
  • 用计数器记录已经选了多少个,确保不多不少恰好 mm 个。
  • 保证递增:下一个选的数必须比当前选的数大,避免重复。
  • n20n \le 20

CC把第47行的组合复制到干扰器程序里。八个节点,分布在G-10外围的八个方向。

"安装需要多久?"你问。

"两个小时。"CC检查了一下数据刀的电量,"我一个人去。你们在这里守着Echo。"

"你肩膀还在渗血。"

"死不了。"她已经转身走向穹顶的侧门,"两个小时后,地鼠网会出现一个洞。你们从洞穿过去。"

门在她身后合上,发出沉闷的金属撞击声。Echo的投影闪了一下:"她...总是这样?"

"总是。"

"那你呢?"

"我等她。"

在线编程 IDE

建议全屏模式获得最佳体验