LGPH #1 题解,和一些杂谈
LGPH #1
小题
1
第一小问 blue:直接用摩斯电码翻译得 back。
第二小问 orange:视为二进制数,然后用 ASCII 码转为字符,最后 base64 解码,得到 square。
第三小问 yellow:肉眼看出或用 nutrimatic 得 public。
第四小问 indigo:直接跑单表得 answer is pupils,即 pupils。
第五小问 red:求解以后分别象形三个粗线分开的大格即可,即 new。
第六小问 violet:英语常识题,六个小小问的答案分别是 vowels dark cos juliet south march,按说明提取得 vacuum。
第七小问 green:1 = one,所以答案是 money。
Meta:根据说明,提取每题答案和颜色中同一位置上相同的字母,得到 believe。
本题一定程度上受 P&KU2 的“第一道题”启发。
需要注意的是,英语当中的彩虹七色一般指是上面出现的七个,中文里差不多的有“赤橙黄绿蓝靛紫”,不过最后一个是 violet 而不是 purple。
2
观察抽象画,不难得到五个游戏分别是英雄联盟 League of Legends,原神 Genshin Impact,王者荣耀 Honor of Kings,明日方舟 Arknights,蔚蓝档案 Blue Archive,提取红色位置的字母得到 electronic。
免责声明:我以上五个游戏都不玩。
3
注意到上下是纯交替进行的,因此没有任何含义。将向上-向下的一步视为 .,向上-保持-向下的一步视为 -,将中间的长保持视为分隔符,然后用摩斯电码翻译,即得答案 illness。
4
观察题目,可以发现字母的编号等于图的生成树数量,从而可以得到答案是 ironwood。(不会数生成树数量怎么办?一个不难证明的结论是,如果图的形状是“两个点之间有长度分别是
5
容易看出这是旋转 180° 之后的英文,内容为“read assume upsidedown”,所以答案是 assume。
6
electron 是电子,即 e,同时暗示题目与物理或化学有关;右侧的文字可以看出是缺少偏旁的元素名称,偏旁用上面的 ab 指示。将右侧替换为元素符号,然后与左边拼接,即得答案 endoflife。
本题一定程度上受 CCBC13 小行星带第 16 题启发。
7
象形空白部分,得到 white。以下把空白换成了 x 以方便识别:
x.x.x
.x.x.
-----
x..
x..
xxx
x.x
x.x
-----
xxx
.x.
.x.
.x.
xxx
-----
xxx
.x.
.x.
.x.
.x.
-----
xxx
x.x
xxx
x..
xxx
本题是从 CCBC 群群友某天发的题目搬的。
8
观察到每个单词前都空了一格,可以猜到是在单词前加一个字母成为新单词。
ghost
ideal
valley
emerge
nearly
nether
avoid
many
emotion
所以答案是 givenname。
9
前两条明显是 OI 题目中会出现的表述,自然想到在主题库中利用搜索功能寻找严格匹配的题目。搜索以后可以得到这五条分别来自 P1415 P1618 P1507 P1805 P1919。将题号分成两个两位数再 a1z26 即得 noprogress。
10
可以观察出右侧的分数是 a1z26 后取倒数求和。可以找一个代码来求解分拆(如 P1763 埃及分数 的题解),或者直接通过机制猜测,以及结合 nutri 搜词,总之可以得到答案是 egyptian。
11
直接描述图片,得到 ex is t in g,即 existing。
本题一定程度上受 CCBC13 的“提词卡”的最终提取启发。
12
看形状不难想到猪圈密码,将每个直角符号的两条边补全再翻译即得答案 rightangle。
(本题有多种等价的理解方式)
13
观察到”京 = king“不难想到北京大学 Peking University,而其他两个也是在大学名称中出现的非拼音音译,因此清应该指清华大学 Tsinghua University,即答案为 tsing。
(这些音译实际上似乎来源于威妥玛拼音)
14
题目中的图片是一个字母旋转了四次放在一起的样子,可以看出答案是 symmetry。
(你甚至可以直接单表)
本题一定程度上受 CCBC13 的“提词卡”的其中一个部分启发。
15
不难看出本题的机制是“在顺序中处于两者之间”,从而可以得到答案是 liquid。
bronze - Silver - gold 奖牌
september - October - november 月份
point - Line - plane 点线面
barleycorn - Inch - hand 英制单位
grain - Dram - ounce 英制单位
| 取上下首字母
(solid -)liquid (- gas) 物质的三态
|
iron - Gold - diamond Minecraft 中的矿物
summer - Autumn - winter 四季
dragon - Snake - horse 生肖
本题一定程度上受 CCBC13 小行星带第 53 题启发。
16
观察到给出的字符串长度为 35,而 35x4=28x5,提示将这个数视为 16 进制数转为二进制再放入 28x5 盘面内。象形得到答案为 sixteen。(下面把 0 换成了空格以方便观察)
111 1 1 1 111 111 111 1 1
1 1 1 1 1 1 1 11 1
11 1 1 1 111 111 1 1 1
1 1 1 1 1 1 1 1 11
111 1 1 1 1 111 111 1 1
17
(键盘以标准 qwerty 键盘为准)观察到 m s v 分别在其键盘上所在的行内第 7 2 4 个,与牌上的数相同,因此可以猜到机制:万/筒/条分别代表键盘的第 3/1/2 行,用牌上的数取对应位置的字母,而红五代表 10。因此答案为 handheld。
(单词的结构比较特殊,导致差不多可以直接单表爆掉)
机制的由来是万/筒/条比较一般的是用 m/p/s 表示,这三个分别处于键盘的三行。
本题一定程度上受 P&KU 群群友某天发的另一题启发。
18
观察后可以猜到机制是读音相同,因此答案是 hair。
sea = see
son = sun
male = mail
right = write
hare = hair
本题一定程度上受 CCBC13 小行星带第 17 题启发。
19
根据“关键内容”可以猜到缺少的内容是关键字。根据前后文的提示将正确的关键字填入以后,提取首字母,即得答案 functional。补全后的代码如下:
#include<bits/stdc++.h>
bool flag=false;
using namespace std;
class foo
{
typedef double db;
db val;
public:
int state(){return val<0?-1:val>0?1:0;}
bool nonzero(){return val<0 or val>0;}
bool iszero(){return not nonzero();}
bool iszero2(){return val>=0 and val<=0;}
};
long long inf=1ll<<62;
int main()
{
if(flag) cout<<"error"<<endl;
cout<<"Joe Uncle SAY Zach Cost QuarK";
return 0;
}
20
直接搜索这一段文字,靠搜索引擎的模糊匹配功能就能找到原文,原文来自于 MIT License。提取每个单词中相对于原文修改后的字母,得到 license。
中题
1 - 混沌逆乱
不难还原原文:
众所周知汉字的顺序不一定会影响阅读,比如你正在看的这段话就被打乱了,但你仍然读得懂。作为第壹道中题,自然不能太困难,不能把选手的自信心打击掉了。下面直接给出一个小提示:打乱肯定有意义。分句内的每个字都不同,可以将话对应到一个排列。排列可以对应到一个数,再用熟知的方式转换为字母。
如果排列对应到数的方式是康托展开,那结果未免也太大了,对 26 取模也看起来不是很对。
注意到标题中的“逆”字,可以猜测提取方式是逆序对数量,a1z26 即得答案 totallyamess。
本题一定程度上受 CCBC13 的“单选题”启发。
2 - 过往之忆
观察开头的话,“几场不久之前的比赛”提示这些题目都是原题,而“房前的草坪、房后的泳池”提示了提取方式与植物大战僵尸有关。
第一小题:原题为 CCBC12 的 A-2085,做法为观察图形内部的线段,象形得到 spike。
第二小题:原题为 CCBC13 的小行星带第 60 题,做法为连接实线两侧正方形中心,象形得到 puff。
第三小题:原题为 P&KU2 的“命题组的和睦无与伦比”,做法为将信号旗换成字母再转成双旗旗语,象形得到 potato。
第四小题:原题为 CCBC11 的第 20 道小题,由于我不会画花所以画了纸币的形状。你也可以认为原题是 CCBC14 的“邮票传情”。做法为计算每一行的面值之和然后 a1z26,答案为 torch。
Meta:以上四个答案都只在一个植物的英文名内出现(忽略非自然获得的钢地刺),提取其是第几个获得的植物,a1z26 得到答案 view。
3 - 合而为一
不难观察到这些题目都是复用了小题的机制,八个子问题分别复用了第 19、3、5、14、1、18、9、15 小题。八个子问题的答案分别为 p, r, o, b, l, e, mi, d,拼接得到 problemid,即为本题的提取方式。将对应的小题题号进行 a1z26,得到最终答案 scenario。
4 - 后现代诗
斜体字的第二行一定程度上提示了解法,你需要在诗中找到隐藏的数。
第一行指出换行的字数固定是行为艺术,那么复制下来删掉换行,从第一个字往右下读取,可以得到做法“分段落数字读音求和”。
在各段落中找到与数字读音相同的字,并求和其对应数字,然后进行 a1z26,即可得到答案 important。
具体而言:
- 第一段:久(9) => 9 => i
- 第二段:扒(8) 衣(1) 寺(4) => 13 => m
- 第三段:时(10) 捂(5) 衣(1) => 16 => p
- 第四段:时(10) 舞(5) => 15 => o
- 第五段:识(10) 捌(8) => 18 => r
- 第六段:时(10) 久(9) 依(1) => 20 => t
- 第七段:衣(1) => 1 => a
- 第八段:灵(0) 漆(7) 漆(7) => 14 => n
- 第九段:漆(7) 寺(4) 扒(8) 衣(1) => 20 => t
冷知识:我在写这段话的时候没有意识到我在第八段写了一个灵(0),不过不影响答案,就留在那里了。
本题一定程度上受 CCBC13 的“一笑如风”启发。
5 - 语言学竞赛
显然,答案就是把代码全部跑一遍就行。不过更显然的是,有的代码你是跑不完的,具体为第 2, 3, 4, 7 份代码。
第一份代码 C++
作为一名信息学竞赛选手,你总不能连跑个 Helloworld 的环境都没有吧?
就算你不是,洛谷也有在线 IDE 功能。
直接跑就可以了,答案是 s。
第二份代码 Javascript
Javascript 可以在浏览器的 F12 console 里运行,或者由于其语法和 C++ 相当接近,直接看也不难看懂。
不过显然,这是一个
然而,当你看到输出格式的时候,你可以意识到解的个数相当少,不会超过 21,从而解看起来也不能太大。把 cap 改成 100 跑一遍,即可得到答案 m。
实际上不难证明解只有
第三份代码 Python
至少在这份代码里,涉及到的 Python 语法都和 C++ 相差不远。
前半部分完全是在复述葛立恒数 (Graham's Number) 的定义。那么怎么计算葛立恒数对一个数取模的结果呢?
葛立恒数是数不清的 3 组成的指数塔,因此可以参考P4139 上帝与集合的正确用法的题解,那题的底数 2 是不关键的,换成 3 不会有任何问题。
跑一遍可以得到
第四份代码 Haskell
函数式编程就与 C++ 的语法相去甚远了。
从这份代码里应该可以勉强看出 show 表示将数变成字符串,if then else 类似于 C++ 的三目,take 表示取前若干个字符,tail 表示去掉首字符。
另外,值得一题的是,Haskell 处理数组(字符串只是字符数组)是懒惰的,某一位在被用到之前不会被加载,所以不会出现 getStr 函数无法返回的问题。
那么这题求解的就是,在所有正整数按顺序拼接而成的字符串中,238943289532235 第一次出现的位置。这属于小学奥数题目,过程省略,多分几类讨论就完了。答案是 3241747303823188,输出结果为 e。
第五&六份代码 Brainfuck&Whitespace
这两份代码是完全相同的。
Brainfuck 是最知名也是最常用的 esolang 之一,相信绝大多数人都能一眼看出。手动模拟或者寻找能运行的在线编译器,可以得到运行结果为 a。
最开始提到了“不同的语言”,可知这两份代码的语言是不同的。尝试选中代码就会发现前两段后面有一些奇怪的空格和 Tab,从而可以想到 Whitespace 语言。Whitespace 语言的关键字只有空格、Tab 和换行,其余字符会被忽略。手动模拟或者寻找能运行的在线编译器,可以得到运行结果为 y。
这两种语言互相忽略对对方有用的字符,因此可以直接写一起。
第七份代码 文言(wenyan-lang)
文言的语法实际上与 Javascript 相近,而 Javascript 又与 C++ 相近,所以实际上看懂问题不大。
这题求解的问题很简单,斐波那契数列第 283737250691410 项模 998244353 的余数,不过写了一个指数级的算法。使用矩阵快速幂等算法即可得到答案 410162752,输出为 12。根据注释中的提示,按 a1z26 转换得到答案 l。
第八份代码 Chef
语言可能比较难懂,不过如果看过或者猜到了,很容易知道答案是 char(80+4+20+8+3),即 s。
Meta
上面提到的答案按顺序写出 smbeayls 很明显得到的不是一个词。再加上第五题和第六题的代码相同,那么必然是有一个规则来重排的。可以猜到排序方式是语言名称字典序,或者直接通过 nutri 爆出,可以得到最终答案 assembly,即汇编语言。
本题一定程度上受 CCBC14 的“何日君再来”启发。
6 - 密码破译
这题出的比较乱和孬,很不可做,因此这里只报答案。(省略了“转换为位数恰当的二进制”和“按恰当的位数分割再视为二进制”的步骤)
| 原词 | 原编码方式 | 解码方式 | 解码结果 |
|---|---|---|---|
| radio | ASCII | a1z26 | nipvhzko |
| onto | a1z26 | morse | jycbot |
| others | morse | 0-9a-zA-Z = 0-61 | Y20 |
| summit | 0-9a-zA-Z = 0-61 | a0z25 | ohszmsoq |
| title | a0z25 | a1z26 并翻转整个字符串 | dzyby |
| ear | a1z26 并翻转整个字符串 | ASCII | L( |
(有翻转这种孬上天的东西完全是因为我找不到其他方式了)
观察到编码-解码方式形成了一个环,且形成的环中,前一个的末尾字母与后一个的开头字母相同,可以想到提取这些字母。注意环状的提取头尾会重复。最终可以得到答案 rooster。
7 - 光暗之元
标题中的“元”代表这是一道元谜题,也就是说,[20] 是 20 个小题的答案。
分类暂时不明确,可以先来看看三组小题的提取机制。
第一组小题:提示为 odd,可以发现是提取奇数长度单词的中心字母。
第二组小题:提示为 mid,可以发现是提取偶数长度单词的中心两个字母的平均值。
第三组小题:提示为 sym,可以发现是提取偶数长度单词中唯一一对相同的对称位置的字母。
第三组小题的限制是比第二组小题大的,所以能往第三组分就往第三组分,否则才往第二组分。
因此,可以得出如下划分:
01 believe -> i
03 illness -> n
06 endoflife -> f
07 white -> i
08 givenname -> n
13 tsing -> i
16 sixteen -> t
20 license -> e
------------------
02 electronic -> s
05 assume -> t
10 egyptian -> r
14 symmetry -> i
17 handheld -> f
18 hair -> e
------------------
04 ironwood -> o
09 noprogress -> r
11 existing -> i
12 rightangle -> g
15 liquid -> i
19 functional -> n
可以得到 infinite strife origin。
搜索 infinite strife,可以发现音乐游戏 Arcaea 有一首收录曲目名为《Infinite Strife,》,因此答案为 arcaea。
实际上,所有示例词都在 Arcaea 收录曲曲名内出现过(byebye 没有出现过,但是 bye 出现过),这是故意的。标题中的“光暗”非常隐晦地指向 Arcaea 的剧情。(然后有选手靠这个猜过题了,逆天)
这题差不多是随便水一下然后用来夹带私货的。
8 - 立方之星
首先你需要从图上看出来 mark two stars,或者点开在线做题链接然后点开 show rules 看到星数为 2。
图中的区域数为 9,然而每个面都能提供总计 12 个行列,从这里可以推出,将本题视为正方体表面,行列应当是跨面计算的,例如,最底下 12 格是完整的一行。
Bilibili 上的讲解视频,下面贴一下解。
提取每一面的红色块,得到 region remain lowest。
提取所有区域剩余的字母中的最小值并重排,得到最终答案 adventure。
杂谈:我很想往比赛里塞一个纸笔,但是首先我得会做所以规则不能过于小众,但是我又不想求解的过程被网上已有的大量求解器跳过,所以我出了这道变体星战。想到在立方体表面出是在 penpa+ 随机捣鼓时发现支持立方体表面式网格后决定的。
至于怎么出出来的呢?首先随机画一个解,然后随机画一些区域并设计了两个开局的突破口,然后调整区域和解使得不会出现简单的多解(从长方形的两个角换成另外两个角),并同时边做边削保证可推,最后再尝试削弱过程中的突破口来加难度。
如果你想尝试(简单一亿倍的)加强前版本:链接
xxuurruuii 内测(现在的版本)时的评价:还行,能推,有难度
大题
找链接
“大房间内的非同寻常的大的东西”并不难注意到——每个中题内恰好有一个大写数字,虽然其中的一部分并非作为数字使用。
八个大写数字按顺序分别为壹肆柒捌陆叁贰伍(14786325)。
用这八个大写数字提取所在中题的编号的对应位,即得大题 1 链接 bzlfpqja,即“存在的”。
仔细观察可以发现,此前的 28 个题目的编号的第一位,是互不相同的。编号可用的字符有 36 种,去掉以上 28 个以后恰好剩下 8 个字母,排序后,按以上的顺序取出,即得大题 2 链接 aekrhdcg,即“失去的”。
“链接需要自己找”这个 idea 是从 P&KU2 抄的。
1 - 存在之物
“另一个维度”显然是指对应题目的答案,提取得 twinborn。
2 - 失去之物
方块和缺口的数量暗示将给出的大数转换为 36 进制,结果为 3w059f24m7plqx6ov1tniu8ybzjs,恰好为存在的 28 个题目编号开头。替换为对应答案的首字母,得到 the available answer is fighters,即答案为 fighters。
FINAL - 命定的唯一
在做教程题时你一定就在奇怪为什么题面在有意避免大写字母的使用,而后面的小题也有很多相当神秘的大小写使用。到这里你应该可以意识到是为了 FM 搞的。
按顺序写下所有小题题面中的大写字母,得到 bwlitgfpmxnovjusayzcqkrhde,是 26 个字母的一个排列。有以下几点可能需要注意:
-
第一小题第五小问的解没有直接出现在题面中,所以不计入
-
第二小题中的大写不是给 X 而是给答案表示的原文 B
-
第五小题中的大写不是给 M 而是给颠倒前的原文 W
-
第七小题中的 I 和 T 是大写的
-
第十六小题的中间步骤没有直接出现在题面中,所以不计入
可以猜到提取方式应当与“失去之物”相同,毕竟形式差不多,得到 the fi_al answer is _he_a_____。
失去的字母怎么填入呢?可以想到的是,既然 Final Meta 形式上应该用到所有题,那么用了 Meta 2 的链接,应该用 Meta 1 的答案。或者也可以通过其他方式猜到。将 aekrhdcg -> twinborn 带入,得到 the final answer is the rainbow。
所以最终答案为 therainbow。
注:如果你回答了 rainbow,则会提示 'the' is included in the answer.
THE END
其实这整套题是为了最后这碗醋(Believe the
FM 的答案为 the rainbow 是一开始就定好了的,包括结构,然后倒着出。
前前后后大概出了一个月,从 9/5 开始出,9/27 半夜才出完。
为了凑前两个大 Meta 的编号的提取,我发了了总计 113 个云剪贴板(可能记错但肯定超过 100)。
为了防止有人没意识到失去的字母怎么填就爆出答案,我凑了半天总算凑了一个构成和 rainbow 接近的 twinborn。然后又凑了半天怎么分布剩下的字母让第二道大题的提取方式能出一个合法的答案。
接下来是在中题里也塞一个 meta,想来想去就搞了第七题这么一个夹带私货的。
再然后是我想肯定要搞一个教程题目,然后就看了看 P&KU2 的第一道题,然后发现彩虹七色各取一个字母并重排可以构成 believe,而且和中题的 meta 不冲突,就放在了教程。
以上是前三天的进度。然后又花了三天瞎出出完了小题。接下来中题的出题路程缓慢推进,因为想不出来什么较为复杂的 idea 了。
9/13 出完了第八题初版,9/15 出完了第一题,9/17 加强了第八题以及有了第四题的想法,9/18 水完了第三题,9/21 塞完了第六题然后第二天在群友的建议下削了一点,9/24 搬完了第二题,9/26 出完了第五题,9/27 实现了第四题。
中间有一天我决定把 FM 获取那个排列的方式改为塞进小题,原本是以某种方式写在题面。于是现在小题就有相当鬼畜的大小写。
出 PH 真的是累死了,下次不出了(
最后相信彩虹真好听,都给我去听111111111