CCBC17 - 余烬

Challenge

CCBC17(Heptadec)的《余烬》给出一段被破坏的中文题面,以及一条风险警告:

风险警告:发现 10 个火源。

题面要求复原原文。复原之后,还要按照题面描述的规则继续操作,得到一个与火有关的十字母英文词。

Analysis

1. 先确定原文的规模

页面上能看到的内容是 91 个汉字和 9 个标点。题面又反复提到“方阵”,而 91 这个数字本身不能组成方阵,于是需要寻找一个包含 91 的方形规模。

1
2
11 × 11 = 121
121 - 91 = 30

因此,原始题面应当有 121 个汉字,排列成 11×11 方阵;现在看到的文本比原文少了 30 个位置。

这也和“发现 10 个火源”对应上了:每个火源会影响自己以及上下左右四个位置。单独计算的话,10 个火源会覆盖 50 个位置,但不同火源的十字区域可以重叠,最终被删去 30 个位置并不矛盾。

2. 还原“火源”的规则

提示把“火源”定义得很具体:只计算字形中带有“火”的字,不包括四点底“灬”。因此,“煮”“熬”“然”“热”这类字不能直接算作火源。

每个火源的作用范围是一个十字形:

1
2
3

左 火 右

也就是删除火源自身和正交相邻的四个字,而不是删除周围的 3×3 九宫格。

这个区别很重要。用九宫格去解释会产生完全不同的删除数量,也无法和题面剩余的 91 个字对应起来。

3. 按残留文本复原题面

残留文字的语序已经被打散,但仍然保留了几个关键片段:

  • “本应该排一个方阵”
  • “暴力穷举复原”
  • “自身和周围四个格子”
  • “只剩两字”
  • “与火相关的十字母词”

结合这些片段,可以复原出一段完整的题面。复原文本如下:

1
一场大火烧了残骸。这些字本应该排成一个方阵,但题中所有的字都发生了变异。想要解开这谜题,你们需要暴力穷举复原这道题的题面。每个字的存亡都与自身和周围四个格子相关。得到了答案,你应该先定位每个字的位置,然后,让棋盘继续燃烧到只剩两字,它们指向一个与火相关的十字母词。

这里的关键不是把每个缺字凭语感补出来,而是同时满足几个约束:原文长度为 121、火源数量为 10、删除规则为十字形,并且删除后的字符数量必须回到页面上看到的 91 个。

4. 题面的第二层提示

第三条提示说,完成原题面描述的操作后,要把得到的内容加上一个与主题有关的偏旁。

题目的主题是火,因此这个偏旁就是“火”。在残留文字中,能和“火”组成常用词、并且能指向火相关十字母英文词的字,分别是:

1
2
暴 + 火 = 爆
然 + 火 = 燃

得到中文词“爆燃”。它对应的英文是 DEFLAGRATE,正好是 10 个字母,并且是燃烧相关术语。

Solution

这题的解法链可以压缩成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
91 个残留汉字

原文规模 = 11×11 = 121 个汉字

10 个火源,各自删除自身和上下左右四格

十字区域重叠后删除 30 格,剩余 91 字

根据残留片段复原题面

加入与火有关的偏旁“火”

暴 → 爆,然 → 燃

爆燃 = DEFLAGRATE

服务端提交后确认答案正确。

DEFLAGRATE