一重山

题目背景

男生第一次注意到女生,是在学校\(ACM\)集训队选拔赛前一天的夜晚。

此时已是初秋时节,盛夏的酷暑却迟迟不肯消褪;机房的中央空调嗡嗡作响,空气中弥漫着紧张和压抑的气氛。

女生正目不转睛地盯着面前的屏幕,时不时的低下头,在演草纸上计算着什么;而电脑上的代码编译器中,却迟迟没有新的进展。

男生热心、善良,却又有些争强好胜。自第一次上网课起,到选拔赛的前夕,凡是有同学向他提问,他总是诲人不倦;除此之外,他无时无刻不在练习,刷题量早已名列新生的前茅。

而女生,此时正为面前的一道基础题而焦头烂额。

或许是女生的神情吸引了男生,或许是男生那乐于助人的内心迫使他去干些什么。

男生借着起身上厕所的名头,假装漫不经心地,走到了女生的电脑旁边。

“在写\(bfs\)的时候应当先判边界条件。如果不符合直接\(continue\)掉,这样的话不容易越界,也可以过滤掉很多无效条件,不浪费时间。”

这样简单的问题,对于每天都坚持练题的男生自然是一眼秒。

“这都能卡半天?” 男生心想,眉头不知何时皱了起来。

被突如其来的声音打断了思考,女生有些错愕。

“那…请问这道题该怎么写呀。” 女生不失礼貌地向男生问道。

“来。” 男生俯下身子,右手放在鼠标上。 “这道题题目中说,给定一个\(n × n\)的矩阵,每个格子为符号*或者符号 ·,前者表示障碍物,后者表示可通过。” 男生顿了顿,继续说:“那这里既然你要用广搜去找最短路径,就应该把没用的条件给过滤掉。什么是过滤的条件呢?首先,如果下一个格子是障碍物,那么你就不用去访问它了;另外,如果某个点已经被访问过,根据\(bfs\)的特性,它记录的一定是最短的步数,所以访问过的节点也不需要重新访问了。以上两种情况,直接通过\(continue\)给过滤掉即可。”

“那,这里具体该怎么写呢?” 女生歪了歪头,有些不知所措。

“你看,你在前面加个判断就可以了,比如标记数组叫\(vis\),那你就可以这么写:”

    while (!q.empty()) {
        node now = q.front();
        q.pop();

        if (now.x == n && now.y == m) {
            std::cout << "Yes\n";
            return 0;
        }

        for (int k = 0; k < 4; k++) {
            node next = {now.x + dx[k], now.y + dy[k], now.step + 1};

            if (next.x < 1 || next.x > n || next.y < 1 || next.y > m) continue;
            if (vis[next.x][next.y] || graph[next.x][next.y] == '#') continue;

            q.push(next);
            vis[next.x][next.y] = 1;
        }
    }

“这样就可以快速过滤掉没用的情况了。你可以试一下。”

女生按照男生的指导,在代码中添加了两行判断的语句,并复制粘贴到题目旁的代码窗口中,按下提交。

几秒钟后,评测机弹出了\(Accepted\)的结果。

“成功了!”她转过头,眼里带着真切的笑意,“太感谢你了,我刚才想了好久。”

“没事没事,一个小条件而已,记住了就ok” 男生忍住了内心的笑意,补充道:“搜索类型的题目的话,无论是\(dfs\)还是\(bfs\),边界条件都很重要;下次遇到搜索题,可以先写好边界判断,再去完成其他部分的代码。”

“嗯,我记住了。” 女生点点头,将额前的一缕碎发别到耳后,“你……好厉害。刷题很多吧?”

“还好,只是比较感兴趣而已。” 男生语气平静,心里却有一丝不易察觉的愉悦。他看了眼时间,“不早了,你也早点休息。明天选拔赛了,别紧张。”

“好,明天见。”

男生回到自己的机位,心情莫名轻快了几分。

像往常一样,男生打开了一道题目,但此刻的他却有些走神。

机房苍白的灯光映在屏幕上,眼前的文字逐渐模糊起来。

……


走出选拔赛的考场后,男生愤怒地将手中的演草纸撕碎,撒进了垃圾桶里,甩了甩手。

“这题目也不难啊,怎么就一直写不出来呢!” 男生心想。先前的愤怒,转而陷入了深深的自责和懊悔。

男生在走廊尽头看见了女生。她正靠窗站着,手里拿着瓶矿泉水,眉头微微蹙起,似乎还在思考赛场上的题目。

阳光透过玻璃照在她身上,勾勒出安静的轮廓。

女生似乎感应到了什么,上半身转了过来,看见了男生。她注意到男生那紧抿的嘴唇和眉间尚未散去的郁结,目光又下意识地瞥向不远处垃圾桶里散落的纸屑。

女生拧开瓶盖,喝了一小口水,轻声说:“今天的题目,做起来感觉好难受啊。”

她知道。女生在赛时不停的观看排行榜,默默关注着那本不该却一直处在中下游的男生。

“是啊,烦死了。啥都写不出来。” 此时的男生还没有从烦躁的情绪中走出来。

“那个,谢谢你啊。”

男生愣了一下,烦躁的情绪被打断:“嗯?谢我什么?”

“昨天晚上,你教我的搜索写法,” 女生回答道 “今天的\(G\)题用到了。不然我可能要卡很久。”

男生有点懵。一方面是这次的\(G\)题没用到\(bfs\);另一方面,男生没想到自己稀松平常的一次小小帮助,被对方记得如此清楚。

“唉,恭喜你啊,排名那么靠前,到时候应该会分到很强的队友。” 男生在赛时也不停的翻看排行榜,发现了排名靠前的女生。 “我这个排名,怕是连集训队都进不了了。” 男生有些怄气的回答道。

“没事的,我们可以一起组队,一起训练呀。” 女生顿了顿,继续说 “你也应该只是手感不好吧?“

男生怔住了。

万念俱灰的男生,从未想到过,自己随手的一次帮助,竟然在这样一个他觉得自己糟糕透顶的时刻,被郑重地归还回来。

“你……确定么?我恐怕……没什么天赋,练了这么多题,还是这样的水平。”

”这次的成绩又说明不了什么。我们可以一起备战下半年的正式比赛,到那时才能展现出我们的真正实力。”

“那……一言为定?”

“一言为定!“

窗外枝梢间的夕阳,透过窗户,在地面拉出长长的影子。

不过这次,那影子不再是一个人的孤军奋战,而是两个人并肩的轮廓,静静地指向未来的无尽汪洋。

……


"你不是说好的顶峰相见吗,怎么现在就放弃了!"

女生的哭喊声如雷贯耳,狠狠的刺入男生的内心。而此刻的男生,攥紧手中的退队申请表,面色发白。

机房外的走廊空无一人。只有窗外枝梢间的夕阳,透过窗户,在地面拉出长长的影子。

是啊,为什么呢?

自从参加完当年的\(CCPC\)全国邀请赛(长春站)以后,男生便自暴自弃,一蹶不振。

归途的\(25\)小时硬座,承载了男生太多太多的痛苦和枉然(PS:这个属实是亲身经历,25小时硬座,一坐一个不吱声)。

“一重山,两重山,山远天高烟水寒。” 车窗外陆续掠过的燕山余脉的零星丘陵,在男生心里泛起了一层复杂的情感。

\(ACM-ICPC\)系列赛事一向以其极高的含金量和争分夺秒的激烈竞技而著称。可现在,就连\(CCPC\)系列层次最低的省赛/邀请赛级别的赛事,男生甚至连铜牌都没拿到。而那算法竞赛的至高殿堂——\(World \: Final\),更是如镜花水月般遥不可及。

“难道真的什么都做不到吗……” 男生心想,攥着退队申请表的手愈发紧了。

而思绪,恍惚间又回到了那个夜晚。

那是郁郁寡欢的男生第一次真切地感受到一种愉悦的心情。

……


从那天起,机房成了男生的第二个宿舍。

男生发了疯一样的训练,像是要把那25小时硬座的所有疲惫和枉然都燃烧殆尽。

他不再是为了虚无缥缈的天赋或证明而战,而是为了兑现一个承诺,一个对她,也对自己的承诺。

女生则默默地陪在他身边。他们不再仅仅是队友,更像是彼此的镜子和锚点。

她来梳理男生因急躁而混乱的思路,他来完成女生不擅长的数据结构。

深夜的泡面,黎明的咖啡,机械键盘永不停歇的清脆声音,和一次次不见\(Accepted\)不罢休的勇气,是他们最锋利的武器。

那些被草稿纸铺满的日日夜夜,那些为了一道题的思路争得面红耳赤的瞬间,将所有的遥不可及通通碾碎,成为通往未来无限前程的阶梯。

邀请赛,金奖……

区域赛,金奖……

\(EC \: Final\)的参赛资格……

一块又一块的奖牌,记录着他们并肩跋涉的足迹。

直到那一天,聚光灯打在脸上,世界变得安静而辽阔。

主持人的声音通过麦克风响彻整个会场,念出的那个名字,属于他们。

他们穿着笔挺的队服,站上了\(World\:Final\)的领奖台。

奖杯的重量沉甸甸地压在掌心,在短暂的寂静后,台下爆发出雷鸣般的掌声。

男生侧过头,看向身边的女生。

她的眼中依旧有光,一如当年走廊尽头那般明亮,却更多了从容与坚毅。

没有疯狂的欢呼,没有喜极而泣。在震耳欲聋的喧嚣中,他们只是相视一笑。

这不是奇迹的馈赠,也不是命运的使然,而是无数个日夜用代码一步步丈量而来的、曾经如镜花水月般遥不可及的顶峰。

男生望着身旁的她,恍惚间,仿佛看到了多年前那个夜晚,正抬着头询问\(bfs\)知识点的那个女生。

男生多么希望,时间能永远地停止在这一刻。

……


男生的身体猛地一颤,似是被无形的电流击中。

机房苍白的灯光刺入眼帘,屏幕上的代码依然停留在未完成的界面。

他怔怔地望着指尖,那里仿佛还残留着奖杯冰冷的触感,和她的温度。

可眼前,只有冰冷的键盘,以及窗外沉寂的夜色;伴随着空调嗡鸣声,空气中似乎还残留着梦里的荣光。

梦醒了。

女生依旧坐在那里,正全神贯注地练习着和搜索相关的题目,备战明天的集训队选拔赛。

男生擦了擦额头上不知何时沁出的汗水。他想要站起来,腿却突然软了一下。

“难道真的什么都做不到吗……” 男生一边想着,一边收拾着自己的书包。

在踏出机房门之前,男生又回头看了一眼女生的位置。女生仍在专心的做题。

他笑了。或许,真的只是一场梦吧。

然而,男生所没注意到的是,在他的座位上,键盘旁边,那恰好被遮挡的一隅,竟不知何时多了一张纸条。

上面写道:

如果可以再来一次,你还愿意和我一起吗?

……


题目描述

没错,你重生了。而现在,在你面前的河南师范大学\(2025\)级新生排位赛,

正是你再次踏上\(ACMer\)之路,向着前方的未知与迷茫,发起挑战、成就自我的时刻。

如果你愿意勇敢的踏出这一步,攀登计算机系列赛事最高的山峰;

如果你愿意披星戴月地向前行,迎候程序设计竞赛最璀璨的星辰;

那么都请加入河南师范大学\(ACM\)竞赛队,和无数学长学姐们一起,向着共同的目标,一代又一代地,发起冲锋。

本题是为你所设置的一块留言板,你可以在这里讲述任何你想表达的内容。题目保证输出任何内容均会通过本题。


输入格式

本题无输入。

输出格式

请输出你想表达的任意一句话,本题输出任何内容均可通过。

输入样例1


输出样例1

前方是风暴,是无尽汪洋的波涛

输入样例2


输出样例2

如果再多开一道题,她就会回来吗(╥﹏╥)

输入样例3


输出样例3

会有漂亮姐姐带我打ACM嘛⎛⎝≥⏝⏝≤⎛⎝
posted @ 2025-10-09 00:02  _彩云归  阅读(37)  评论(0)    收藏  举报