S40103.1-3 点亮坟场

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

1-3 点亮坟场

点亮坟场

矿道中段的墙壁忽然变得光滑起来——不再是粗糙的陨铁,而是一种类似陶瓷的材质,摸上去冰凉且微微震颤。Echo说这叫"记忆瓷",能记录触碰者三年内的脑电波频率。

"Glados来过这里。"Echo的声音变得急促,"墙壁上有他的频率残留。"

CC停下脚步,把没有受伤的那只手按在墙上。墙壁立刻泛起一圈淡金色的涟漪,像水滴落入湖面。

"他说了什么?"你问。

"不是声音。"Echo说,"是……一个谜题。"

墙壁上的涟漪凝聚成文字——不是全息投影,而是直接从陶瓷内部透出来的光:

"这里有 nn 个开关。每个开关有两种状态。Glados离开时,恰好留下了 mm 个开关在'关闭'位置。找出所有可能的开关组合,按顺序告诉我。"

CC皱眉:"这是什么意思?"

"意思是,"你盯着那行字,"Glados在三年前经过这里的时候,用这些开关给后来者留下了一条信息。每一种开关组合对应一个字母,所有组合连起来就是他想说的内容。"

Echo沉默了片刻:"他不相信语音记录。Zero能伪造声音,但伪造不了这种……这种只有特定人才能解开的排列。"

你开始思考。nn 个开关,每个开或关——总共的可能性像一个巨大的树冠,每一根枝条都是一个组合。但Glados限定了一个条件:恰好 mm 个关闭。这意味着你只需要在树冠里找到那些符合条件的枝条。

"我们可以用一个数字来代表整组开关。"你说,"把这个数字拆开,看它的每一位是开还是关。如果关闭的数量恰好是 mm,这就是Glados留下的一个字母。"

CC看着你:"有多少个字母?"

"取决于 nnmm。可能几十个,可能几百个。"

CC把数据刀插在地上,撑着自己坐下:"那你快找。我守着。"

你开始在终端上运行搜索。数字从0开始递增,每一个都被拆解成开关状态——亮、暗、亮、亮、暗……你逐一检查暗的数量,把符合条件的保存下来。

墙壁上的涟漪随着每一个正确答案的输入而变换颜色。金色逐渐褪去,露出底下更深的、像血管一样分布的红色纹路。

最后一个组合输入后,墙壁发出一声低沉的共鸣。然后,所有的开关纹路同时亮起,在墙上拼出一段话:

"Echo,如果你看到这条信息,说明你真的回来了。碎片在G-10。小心猎杀者。——G"

CC盯着那个"G",很久没有说话。

"他连全名都不写。"最后她说,声音很轻,"怕写全了被Zero认出来。"

Echo的终端发出一声几乎像是抽泣的电子音:"他……他一直都知道我会回来。"


题目描述

nn 个开关,每个开关有两种状态(开/关,用 1/0 表示)。要求恰好 mm 个开关关闭(即 nmn-m 个打开)。按字典序输出所有合法的状态组合。

输入格式

n,mn, m

输出格式

所有合法组合,每行一个。11 表示打开,00 表示关闭。

输入样例

2
10
1000

输出样例

24

提示

  • 用数字代表整组开关——把数字拆开,检查每一位的状态。
  • 统计'打开'的数量,如果恰好是 nmn-m,就输出。

墙壁上的字停留了三十秒,然后像潮水一样退去。陶瓷表面重新变得光滑而空白,仿佛什么都不曾发生过。

CC站起来,把数据刀拔出来:"G-10。下一个目标。"

"但G-10不在这条矿道的直线上。"Echo说,"Glados的留言只是告诉我们方向,没有告诉我们路。"

"那就找路。"CC说,"他留下了第一块拼图,就会留下第二块。"

矿道在前方分岔成三条。墙上没有指示牌,只有一些浅浅的划痕——你走近了才发现,那是Glados用数据刀刻的箭头,指向最左边那条。

"走吧。"你说。

CC跟在你身后,她的步伐比刚才慢了一些,但没有停。

在线编程 IDE

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