Live2D

无题

  [UPD 26/07/24] 这是四年前(当时我高一)完成度比较高的手稿,估摸着也已经忘记当时想接着写的东西就直接发出来了。下面是原稿,感觉……到现在四年过去我的文字功底确有长进 hhh。原来《无题》是九周年生贺吗?现在的我也以为会更早。

 

  (提示:本篇强 OI 相关。)

  我以为这首歌已经相伴我许久,没想到它只是去年的天依九岁生贺。其实从第一次《宠儿》的试水之后,我就很想写这篇了。

  “创作欲”,这个名词本身就很是可爱。“创作”给人以神秘的艺术感,“欲”则是对这份美丽的渴望。固执的雨兔总觉得这份“艺术感”也在算法的世界里。的确,她还创作出许多令她引以为傲的小小珍宝呢。

  第一次出题——或者说第一次出 idea——我记忆很深刻,是在家对面的火锅店里。2020 年 1 月 17 日晚上,二楼,具体位置忘了;我当时初二,水平萌萌。家对面这条街可是冠名的“美食街”,在我的卧室从头望到尾,火锅、串串、大排档,还有吃藕的、吃潮汕牛肉的、吃小龙虾的、吃兔子的(害怕)……直到现在,我妈还是总爱和我调侃,说“我们去哪家店,哪家店就倒”。挺巧的是,除了那家火锅店发展成了“全国总店”(我猜就是川渝总店吧,难不成你在别的省份开大连锁?),那家吃兔子的一直健在,其他的店似乎都悄悄来了,又悄悄走了。

  “美食街”“倒闭”,两个关键词。当时似乎才学过数学期望,我想,能不能编出一个问题呢?

  我翻到了当时写在手机里的备忘录,虽然真的羞耻还是全文放上来叭(调整了一下格式,文字没有任何修改):

The Dream

  吃遍美食一条街,是每个吃货的荣誉与梦想。

——匿名食神

  吃货小 K(当时我的 ID 是 Krain)家对面的美食一条街,共有 \(n\) 个餐馆,小 K 想在这里完成他的梦想。不幸的是,由于激烈的竞争,每个餐馆都有倒闭的风险,每一天个餐馆倒闭的概率都是 \(k\)。而且抢手的铺位也有新的(从未出现过的)餐馆进驻并立即开始营业。当然,这一事件只会在某一天的结尾发生。

  小 K 每天会从自己未光临过的餐馆里等概率地抽取一家去品尝。他想知道,自己完成梦想的期望天数是多少?(若小 K 吃遍所有餐馆的当天末尾有餐馆倒闭,他也“完成了梦想”。)

  我记得当时自己连一个可计算的数学模型都没有给出,就把这个 idea 晾着了。

  几天后——欸,好像可以高斯消元。但这个好简单哦。

  2020 年 1 月 24 日,除夕。上午似乎去家附近的的百货逛逛,返程的时候,我呆在车后座,闲着没事开始接着想这个问题。消元……我发现这个系数矩阵很有特点:令 \(x_i\) 表示已经光临过 \(i\) 家店后,达到目标的期望耗时,这样的话 \(x_i\) 依赖于 \(x_{0..i+1}\),系数矩阵“几乎”就是一个下三角阵,只是多了一点点……

  啊,手动模拟一下消元就 \(\mathcal O(n^2)\) 了!

  先于篇幅,没有细讲我当时“手动模拟”的思路,但的确是我不曾见过的、称得上是“创作”的解法。回去立马搓了代码,在两个表妹的喧闹之下写完,顺便打翻半杯咖啡,对拍,拍上了!当时我很兴奋地发了说说——

  “最好的新年礼物!”

  它也算是雨兔出题的处女作,放在了这里我就想问当时我写出这种题面是留给现在的自己做社死挑战的???

  呜……不那么萌萌之后发现分治 FFT 是平凡的,不过不重要。

  不过,为什么我就突然想要“编一道题”或者说“提出一个问题”?我想这大概要从再早的时候——从初一的某次竞赛之外的经历说起。

  一次在家,我妈和她的闺蜜聊天间隙,给我看了一套“某某中学小生初测试题”,笑称“你现在去考,估计考不起哟”。我自是不以为然,反正也是闲着,就随便挑了到题做。那道题大概长这样:

  有 \(99\) 个人,其中每个人和其他 \(98\) 人中的至少 \(67\) 人是兄弟(兄弟是双向关系),求证:存在四个人,他们两两都是兄弟关系。

  很图论,正确的,我们可以不费吹灰之力证明这个问题。

  当时的我证了一会儿,的确会做。但……\(99\)\(67\) 很明显的一个 \(3/2\) 关系让我开始好奇结点数、最小度数和最大团大小的关系。幸好,得益于 \(3/2\) 的观察,凑出一个合理的式子并不困难:

\[M(G)\ge\left\lceil\frac{|V|}{|V|-\delta(G)}\right\rceil, \]

其中 \(M(G)\) 表示 \(G\) 的最大团大小,\(\delta(G)\) 表示最小结点度数,\(G\) 是简单无向图。

  问题来了,我从来没有听说过“数学归纳法”。

  问年级数学老师,不会。还记得有个可爱的老师,一问这是数学题还是物理题(我直接拿图论形式问的),二问我是不是竞赛班的,哈哈哈感觉为难初中老师还是不好。问我们班的数学老师,他也许挺厉害,但是个巨大鸽子。最后还是自己磨。

  我观察了最初 \(K_4\) 存在性的证明,觉得主要工作无非是说明“存在一条边,其两个端点都与另一条边的两个端点邻接”。这里比较取巧(当然也比较埋坑)——\(K_4\) 的证明只需要取一条边,证明存在另一条边。那么……我想要证明 \(K_n\) 存在,是不是只需要证明选出一个 \(K_{n-2}\) 后,能再选出一条符合条件的边,此后“递归”证明 \(K_{n-2}\) 就行了呢?思路是自然却“新颖”的,讨论是简单的,结论是正确的。后来 Walking_Dead 指出可以由 \(K_{n-1}\)\(K_n\) 归纳,让讨论更简单了一些。你可以在这篇早期作品看看细节。

  “我通过观察小奥题的数据得到了一个普遍结论,然后自创了‘递归法’证明了它。”现在想着还是清甜的回忆呢。

  后来,我知道原来有个东西叫数学归纳法。

  很后来,虽然早有预感,我得知这个结论早就被提出了。(出题人不会就是这么出的吧?)

  Whatever,这件事对我的意义和它们可没有关系。

  不值大家一提的创作,就由她自我陶醉好了。

  再后来,对我意义比较大的创作应该是「道路铺设」“系列”。

  一开始,教练叫我和 crashed 改编 NOIP 2018 的题组模拟赛,当时《铺设道路》这题由我负责。教练顺口说着,“序列上个树,……”,我想,那就上个树?

  给定一棵含有 \(n\) 个结点的树, 点 \(u\) 有非负点权 \(a_u\). 每次操作你可以选择一条简单路径 \(P\), 满足 \(P\) 中任意结点点权非零, 此后将所有 \(P\) 中结点的点权 \(-1\). 求至少需要多少次操作才能让所有结点的点权变为 \(0\).

  思考的时间起码跨越一周吧。在机房踱步,在前面的黑板上瞎画……那个周末放假返校,我在公交车上想着想着,似乎得到了一个需要堆维护贪心的 \(\mathcal O(n\log n)\) 的做法。差不多了?而且估计又是错的。我想。

  下车,绝对是脚踏上站台的一瞬间,一个声音小声在我心里嘀咕:“你拿这个堆来干嘛?”

  ——“欸?”

  “子树两两匹配的最多匹配次数……是不是可以直接根据子树和以及最大子树和算出来?”

  ——“好像……可能可以?”

  “我草?我草我草我草?\(\mathcal O(n)\) 了?”

  我不知道当天晚上班上干了什么,我只知道我的草稿纸上多了一片森林(画了很多树),贪心策略似乎成功地说服了我自己。

  最后,它来到了大家面前。值得一提的当然还有 EI 鸽鸽的线规对偶解法。这道题当时放在校内模拟赛没有人得到优于大暴力的分数,我惊讶地发现了慢慢磨一道题可能真的可以磨出来!

  戏剧性的,这道题给我带来的红利不止于此。我后来起码做过五道形如“你有一棵树,你要用路径覆盖点(边)”的题,大概是因为我这道“道路铺设”过于深入人心,看到它们我一般都是直呼“噫!道路铺设!”然后秒掉。“道路铺设二十四题”也成为了我造题的 idea 库。

  从此,从那个下午开始,我似乎的确对“解 idea”上瘾了。

  要说我的得意创作,不得不提到“毛毛虫剖分”,它的出现并不算很美妙——更像是我在正式赛场上“紧急避险”的产物。

  毛毛虫剖分,如果你熟悉 NOI 的题目,你一定能想到《轻重边》,但又觉得差异——这可是 D1T1,什么物种在什么精神状态下会编一个那么诡异的算法做签到题呢?

  我们暂时不去研究赛场上一只傻子的思考历程,但她的确同这个做法赛上过掉了 D1T1(只是签了个到),甚至因此没有去切后两道傻题(或者,以这精神状态也做不出来呢?),分数看起来就是萌萌暴力选手。当时我也许该难过?但可笑的是,没什么功利性压力的我真的没难过起来,反而很兴奋地传授邪典:

  挺可爱的,找这个帖子的时候半天没翻到,后来发现原来是某次 NOI 集训的时候,有道题可以用毛毛虫剖分秒掉(而且更好写),于是被顶上来了:

(底下那条好像是乱入。)

  后来,我就很想构造一道“不得不用”毛毛虫剖分做的题。在上个春节群友们的共同努力(码农)下,出了这道题。膜拜题解区老哥,现在这题有毛毛虫剖分、Top Tree 和 LCT 维护实链虚儿子顶三种做法。当然在这题的数据下最快的毛毛虫剖分(但并不是我的代码,是别人贺的我代码跑得最快)。

  很久很久以后,CSP 2022,我又 [数据删除],得到了一个 [数据删除],再后来有了这个 idea。(Update:大好消息,这个 [数据删除] 在出成校内模拟赛的时候被发现假掉了。)

  背住一个“通性通法”是文化课干的事,但观察到“通性”然后在紧张的赛场上即兴创作一个“通法”,或许不得不承认是“竞赛”带来的思维爆发力。

  「大胆去想象 大胆去想象」

  「会有新诗行」

  虽然不同于大多数人的“为了考察一个知识点出题”,但我以为我终究只是在“出题”,直到它的出现。

  某位群友在群里发了个不太积极健康的思考题,大意是:

  [UPD 26/07/24] 算了不放大意了,这个确实是懂的都懂,不懂得我也不好说 hhh。

  当我谴责完这种行为后,我发现这个问题并不是太简单。答案是 \(2\),我也是看了群友的解答才明白。后来在寝室和室友说起这个问题(不愧是肮脏的寝室生活.jpg),也把他们难住一阵。告诉他们答案之后,也不知道是谁(Update:不装了,是我)突然一问:

  “\(n\) 对人呢?”

  “?!”

  我们抛却过于离谱的题意考虑问题本质,这不正是一个标标准准的构造题吗?

  那段时间训练比较闲,我和 Reanap 在机房隔壁二人转(?),前前后后从 \(2n\) 优化到 \(\frac{3n}{2}\),到 \(\frac{4n}{3}\),然后在软磨硬泡下磨出 \(\frac{5n}{4}\) 的解法,以“尽量优化”而非“通过测试点”为目的做构造题真的会难很多倍。顺带一提,两个人在讨论的时候用的是原本的题意,所以经常出现虎狼之词。(

  又是很久很久以后,一个文化课补课的晚自习下课,无聊的我随便想着些 OI 题,然后回忆到这个构造。先缅怀了一下 \(\frac{5n}{4}\) 的做法,说实话,并不是很好看,感觉有一步“不是很对称”,所以我当时想整一个好看一点的做法。或许单纯是从美学角度考虑,我在草稿纸上画了几个框框,然后一顿脑子动笔不动的人类智慧之后,突然发现“美学”的尽头是优秀的 \(\frac{7n}{6}\)

  正巧,Reanap 也还在教室卷,我把他叫道外面去——

  “那题。”

  “怎么?”

  “我好像 \(\frac{7}{6}\) 了?”

  “讲讲?”

  对着墙比划一阵,得到了完全体的。这题确实获得了广泛的喜爱,特别是当它的原始题意通过某种方式流露之后。(

  那天晚上,自然是兴奋地回寝室传教,让所有人激动于节约资源保护环境的精巧构造。也许这样的创作而生的题目可遇不可求,但它让我意识到,一群渴望思考的人聚在一起解决天马行空的难题,这或许是我精神深处的追求。

  天马行空啊……其本身也该是一种享受吧。

  “我好无聊。”——于是在初三的那节数学课上,我开始随机说话。

  “想出几何题,点点线线多来点。”——于是有了两列点,两两配对连接。

  “画好看一点吧,colorful!”——于是,我们需要为这些连线染色。

  “复杂一点?”——于是,一种颜色可以在连线交点处任意拐弯。

  “差不多了,数一数?”

  Here comes 这道题(不过最后的乘法在一开始的版本中是加法,实在不想再严谨说这个题意了)。我喜欢叫它彩虹链接,因为想着挺好看的。

  初三:不会。

  高一:不会。

  高一:加法改成乘法?好像会好算一点。

  高一:没仔细推,不太会。

  精彩的是高一的生化会考,因为题目过于简单但草稿纸质量过于好,不想浪费的我想起了这道题,开始推式子。当时大概推了题解里 subtask 5 那一小段,后来到了可以交卷的时间,简单记忆了一下步骤就溜了。我至今仍然无法忘记监考老师站在讲台附近斜睨着我的草稿纸的神情。

  考完回到机房,处理了那部分的细节,顺便想到答案对 \(q=2p+1\) 取模,其中 \(q\) 是素数,\(p\) 是 NTT 模数这样的方式来方便选手使用多项式操作。后来外培的时候完善了前面数论部分的细节。上面那道题就在 GLR-R4 和大家见面了。

  像是奇怪的升华,我总是喜欢孩子的思考和灵感,那种未经雕琢的上天赐予的天马行空的想象。如果这种力量仍然能体现在储备了相当的知识和经验的人们脑中,该是多么的宏伟而势不可挡。

  嘛,现在的我编 idea 都没初中的时候畅快了。

  “如果这种力量仍然能体现在储备了相当的知识和经验的人们脑中——”

 

  [UPD 26/07/24] 原稿在这里戛然而止了,我也记不清当时的自己还想写一点儿什么。至少到今时今日,作为一个重度的 LLM/Agent 用户,我仍然觉得自己的所谓“灵感”是强于目前最前沿的模型的。从这个意义上,我们仍然比 LLM 聪明(这件事似乎并不值得称道)……我仍然认为,用成熟的体系代替天才的灵感是一个必要的工作。灵感或许像是盲杖,为了更快地探索世界,你最好先用它找到自己的眼睛——这件事情本身就是灵感最伟大的意义。

posted @ 2026-07-24 14:42  Rainybunny  阅读(74)  评论(1)    收藏  举报