不出意外的话,这东西本该咕到翻年之后再发的,但好像催稿催的有点厉害,于是就找个机会把他写了(笑)
最初是只想写个算法竞赛退役记的,后面发觉写起来就有点收不住,算法竞赛牵扯到太多的有的没的了,所以就把很多相关的东西整合进来好了。
内容会非常的散,大家伙儿如果愿意看的话,就看个乐呵?
已经预感到这篇文章会是流水账风格那种,想到哪里写到哪里,我尽量按照时间顺序来吧。
好像在初中之前,我并没有主动接触计算机知识、编程技术的任何想法,只是把电脑这东西当成一个非常好用的游戏机在玩。
幼儿园那会儿,在我老爹的带领下,我就开始接触各类电子游戏了,最开始玩4399上面的沙雕小游戏,由于家里没有网(那会儿还是拨号上网来着),只能拜托老爹在办公室的电脑上,想想办法下载游戏。
印象里是在某个周六吧,我老爹打开了电脑里的某个神秘的 叫Cookies的文件夹,在里面对着一大车乱码文件找.swf后缀,找到之后挨个打开,居然还真能运行。拷进一个512mb的U盘里,带回家让我在家里的电脑玩,这个时期貌似玩的都是一些意义不明的小游戏,例如砸电脑模拟器(?)等听起来就不是很有游戏性的东西,但当时玩的非常起劲。
记得很清楚的一个flash游戏叫heli attack,小人打直升机的,没有剧情,进去直接就是无尽模式。由于当时的游戏技术不够高超,打的非常坐牢,因此印象深刻。
顺带提一嘴这个游戏的第二代,是个关卡模式的东西,直到现在我都打不通(悲)
那会儿家里还有好多藏经阁光盘,像抢滩登陆系列、超级马里奥、三角洲特种部队、悍马突袭(可能不叫这个名字,但总之会严重触发我3D眩晕的一个东西)、大富翁4这些,都是从光盘里安装的。
这么看来,我玩游戏的起点还算蛮高,至少没有被奇怪的作品拐跑审美(?)
后面接触到了多特游戏,貌似是现在2345的前身,玩儿到了serious sam2,最开始是老爹下了个demo回来,打完之后让付费购买,那会儿国内也没有游戏内购平台,试图忽悠着他买一份,然后因为太麻烦被重拳出击(笑得)。
最后这人不知道在哪儿找了个能用的.iso,不过安起来很麻烦,每次安装要跑一两个小时的进度条,但可算玩儿上了。
这应该是我第一次碰到“买游戏”这个概念吧,当时还真没想过,在十来年后的今天,我会在steam上面狂暴购物。(今年买了3k+的游戏,但是只玩了个BG3,怎么会事呢)(BG3是真好玩啊)
啊哈,当然还有游戏启蒙阶段跑不掉的GTAVC,里面的很多作弊码我现在还记得,bigbang、panzer、professionaltools什么的。当时让我爸打印了整整一页纸的各种作弊码,由于英语水平不太够,记作弊码的时候都是一个字母一个字母念的,游戏剧情也根本看不懂,只知道开着车(坦克)在城市里到处创来创去,一玩一个上午HHH。
有时候我爸陪我一起玩的时候,就能过一过剧情,还能听他实时翻译游戏里面在讲个啥,但绝大多数时间他在上班,我就只能杀人放火开车创人了(悲)
当然还有逃不掉的飞机炸大楼任务,直到现在都记忆犹新
言归正传,总之小学之前阶段的电脑,就只是个神奇的能打游戏的盒子,不过游戏真的很好玩。
小学大概分成两个阶段吧,三年级之前还是以单机为主,这个时候家里已经通网了,我自己也会上网找各路我喜欢的东西玩,多特、游民星空都会经常看看,偶尔不知道干嘛了还会上爱拍去找游戏视频看,也就是在爱拍上,认识了CN第一代网红,脑残deECA那帮人,但后续这群拍客好像随着平台的消失一起消失了。
啊对,好像也是在这个时期吧,有在玩4399上的《造梦西游》跟《美食大战老鼠》,还在10年入坑了赛尔号。
最开始家里对我玩网游这个事儿是非常反感的,但奈何我老爹自己就是个游戏死宅,所以他对我的教育也没啥说服力,我就一直这么坚持着玩下去HHH。
对了,小学还有微机课,微机课上我通过一手娴熟的打字技巧,勇夺班内生死时速亚军(第一名的那老哥实在是太快了,飚不过飚不过)
这个时期班上大多数同学都在玩CF,我在玩街霸4、逆战、弹弹堂、gtasa什么的,还会被我爸拉着规划QQ超市的路径,我当时好像很擅长把路径摆贼复杂。
逆战里面跟班上同学xzx约过一次1v1,他在猛吹自己枪法然后被我拿狙打烂掉之后,好像就不怎么跟我约游戏了(雾),现在看来,那时的自己是非常不友善的(((
也是这个时期加入了逆战里面的战队,队名非常的羞耻,但是还是敲出来吧——【名人堂丶情谊永恒】(你看确实非常的羞耻)
为了跟大家愉快玩耍,还在学校旁边买了个带麦克风的耳机,加了YY,当时战队的YY号是500118,我直到现在还记得,不过前年回频道去看的时候已经没什么人在了。
当时还在游戏里面找了个师傅,那会儿他还是大学生。毕业之后这货去卖黄酒了,后面结了婚,现在娃都好几岁了,怎么讲呢,时间过得真快?
顺带回收一下上面的伏笔,造梦西游3。打了很久发觉这游戏不仅费肝,还要氪,于是就动起了歪脑筋。在网上抄了一大波修改教程,自己下了个CE一顿操作,成功通过改道具名字,让小怪爆出了不得了的装备。
现在看来这个事情真的很神奇,一个游戏做了服务器,但是没有做服务器校验,局内和结算都全局采信客户端,只有数据上报,没有数据校验,那就很难不被用户橄榄(简单歪楼)
(后续发觉这游戏有现成的集成修改器,打开来之后还会播放BGM,分别是《星座书上》和《认错》,貌似是从这里第一次接触许嵩的。)
对了,在四升五的暑假被抓去学了个奥数,五年级华奥希望杯全爆,六年级猛猛学了一波之后,以高超的挂线技巧获得了1+2,成功升学sslz
我恨平面几何
初中阶段好像还是在逆战 + 弹弹堂 + 单机,游戏方面没有特别多值得聊的东西,就主要聊聊学校里和竞赛方面的事情吧。(可算聊到竞赛了。)
一开始还有在学数竞,然后发觉自己的智力已经不足以应付数学竞赛这种神秘莫测的魔法了,在平面几何的摧残下逐渐开摆(雾)
初一寒假结束之后,某一次集体朝会上面,进行了一个信息竞赛宣讲,我寻思这东西也要用电脑,怎么就不叫玩电脑呢,于是就直接冲了进去,完全没想到这个决策会有多么深远的影响(笑)
还算蛮幸运的,当时选拔的时候卡了个文化课成绩,我因为当初文化课没有太拉,好像是挂线进去的。CL老师发了套卷子,写完之后发觉我好像分数有点高,于是就进入了sslz的信息竞赛队伍。
最开始啥都不会,信息竞赛 = 魔法,拿着魔法写各种神奇的程序,vijos、codevs刷题(那会儿还没有洛谷)、读一本通,总之什么都是魔法,什么都不理解,但写出来的代码能跑,还能A,很神奇吧。
还记得最开始作业是写在本子上的,那好像是我写的最认真的一类作业了,当时不仅好好学,好好写,甚至还会仔细检查一下,生怕出锅HHH
后续新鲜劲儿结束之后,教室就逐渐变成网吧了,因为CL老师带两个年级的班,偶尔会去隔壁学长学姐班上看看,此时我们教室的门就会被迷之关上,然后diep.io、slither.io等东西就该启动了。
第一年的普及组考的还蛮不错的,成功地恰到了一等奖,不过当时好像并没有很理解算法竞赛究竟是做什么的——算法不会,时空复杂度根本不知道,只知道要加文件输入输入,不要打错文件名,不要搞漏头文件,不要CE。
对了,这场比赛的赛场上我写出了一份十分神奇的代码,感觉有必要贴出来给大伙儿看看。
NOIP普及组2015 D1T2 扫雷游戏
#include<iostream>
#include<cstdio>
char map[100][100];
using namespace std;
main()
{
for(int i=0;i<100;i++)
for(int j=0;j<100;j++)
map[i][j]=96;
int a,b;
cin>>a>>b;
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
cin>>map[i][j];
}
}
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
if(map[i][j]==42)
map[i][j]=43;
if(map[i][j]==63)
map[i][j]=48;
}
}
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
if(map[i][j]==43)
{
if((i+1)<a)
if(map[i+1][j]==48||map[i+1][j]==49||map[i+1][j]==50||map[i+1][j]==51||map[i+1][j]==52||map[i+1][j]==53||map[i+1][j]==54||map[i+1][j]==55||map[i+1][j]==56)
map[i+1][j]=map[i+1][j]+1;
if((i+1)<a&&(j+1)<b)
if(map[i+1][j+1]==48||map[i+1][j+1]==49||map[i+1][j+1]==50||map[i+1][j+1]==51||map[i+1][j+1]==52||map[i+1][j+1]==53||map[i+1][j+1]==54||map[i+1][j+1]==55||map[i+1][j+1]==56)
map[i+1][j+1]=map[i+1][j+1]+1;
if((j+1)<b)
if(map[i][j+1]==48||map[i][j+1]==49||map[i][j+1]==50||map[i][j+1]==51||map[i][j+1]==52||map[i][j+1]==53||map[i][j+1]==54||map[i][j+1]==55||map[i][j+1]==56)
map[i][j+1]=map[i][j+1]+1;
if((i-1)>-1&&(j+1)<b)
if(map[i-1][j+1]==48||map[i-1][j+1]==49||map[i-1][j+1]==50||map[i-1][j+1]==51||map[i-1][j+1]==52||map[i-1][j+1]==53||map[i-1][j+1]==54||map[i-1][j+1]==55||map[i-1][j+1]==56)
map[i-1][j+1]=map[i-1][j+1]+1;
if((i-1)>-1)
if(map[i-1][j]==48||map[i-1][j]==49||map[i-1][j]==50||map[i-1][j]==51||map[i-1][j]==52||map[i-1][j]==53||map[i-1][j]==54||map[i-1][j]==55||map[i-1][j]==56)
map[i-1][j]=map[i-1][j]+1;
if((i-1)>-1&&(j-1)>-1)
if(map[i-1][j-1]==48||map[i-1][j-1]==49||map[i-1][j-1]==50||map[i-1][j-1]==51||map[i-1][j-1]==52||map[i-1][j-1]==53||map[i-1][j-1]==54||map[i-1][j-1]==55||map[i-1][j-1]==56)
map[i-1][j-1]=map[i-1][j-1]+1;
if((i+1)<a&&(j-1)>-1)
if(map[i+1][j-1]==48||map[i+1][j-1]==49||map[i+1][j-1]==50||map[i+1][j-1]==51||map[i+1][j-1]==52||map[i+1][j-1]==53||map[i+1][j-1]==54||map[i+1][j-1]==55||map[i+1][j-1]==56)
map[i+1][j-1]=map[i+1][j-1]+1;
if((j-1)>-1)
if(map[i][j-1]==48||map[i][j-1]==49||map[i][j-1]==50||map[i][j-1]==51||map[i][j-1]==52||map[i][j-1]==53||map[i][j-1]==54||map[i][j-1]==55||map[i][j-1]==56)
map[i][j-1]=map[i][j-1]+1;
map[i][j]=42;
}
}
}
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
cout<<map[i][j];
}
cout<<endl;
}
return 0;
}
不能说有点离谱,只能说丧心病狂。
槽点是非常的多,例如什么把map当变量名,int main没打int,用cin大力读取字符,不打空格,缩进约等于没有,当然还有最变态的大括号换行。
我天我之前居然大括号换行,不忍直视。
初三,CL老师跑去带初二的小朋友们了,这下教室就真成网吧了,好像也就是在这个阶段吧,从C老师变成了C网管,于是一整个初三里面,虽然算法方面好像没啥提升,但是游戏技术好了不少。有些时候下课直接跟ld翻窗到启智楼打游戏,死神vs火影2.6版本,一手剑心把ld斩于马下(?)
初三普及组不出意外翻车了,但没完全翻,虽然很悬,但还是有省一。
中考凭借高超的物化技巧 + 寄的没有很彻底的数学 + 关键时候抬一手的语文英语,进入了sszx,开始了下一个阶段的摸鱼生活。
先来聊一聊timeline好了,大概是从中考完的暑假就被拉去打竞赛,入学之后学了一个月文化课,就去机房突击NOIP,后续考完联赛接着学了不到一个月,去yali集训,回来借消化 + 沉淀的名号咕掉了寒假作业,而后开学冲击省选继续停课。
省选回去之后上了一个多月文化课吧,暑假开始猛猛停课,期间经历了sslz校内集训、绍一集训,直到第二年省选退役。
个人成绩方面,高一恰了个提高一等之后,一路稳中向好,但在第一个高考假期的时候,因为失恋心态爆炸,玉玉了半年,猛猛颓废。
高二联赛,成功由于个人心态问题 + 神大IDE开演,打出了比高一联赛还差的好成绩,高二省选翻盘失败,当场退役。
其中没啥高光时刻,但有一些我自己印象深刻的事情:
例如wuvin老师在高一apio之前科普过qizy的apio分手醉酒嚎叫故事,本来叫zyqn,打完apio之后就变成了qizy,这下确诊为apio对早恋群体有神秘作用。
再例如暑假集训被低年级爷爷xyz32768猛猛爆杀。
还例如在factorio里面顿悟了网络流技巧,并且沿用到了大学里面(?)
不过相比于一般的竞赛失败玩家,我的高中生活好像多了非常多的 呃 乐趣。高中的机房生活是相对鱼快的,这种鱼快主要得益于三楼机房并没有二楼机房那样危险的后门,krad(好陌生的称呼)也没有zgs那么严格,喜欢没事儿突击打游戏的选手。
于是在krad的半默认下,哥几个就开始在机房猛猛开展电子竞技活动。
那段时间发觉了不少好玩的游戏,例如deeeep.io、还有能够被机房电脑完美带动的cs1.6,以及开最低画质勉强能跑的LOL,还有在家长在教室前面的情况下看lkvan MoonZero玩儿炉石,以及后期午休时间的固定项目factorio。
在头两个游戏里面,LS(那会儿还叫linners来着)选手都展现了极高的电子竞技天赋,于deeeep.io中成功带领三楼玩家们爆杀scarlyw带队的二楼学长学姐,留下了虎鲸 海獭 木头 鲨鱼的世界名画(雾)。
在cs1.6中也取得了傲人的战绩,把村子里唯二的步枪糕手LPA和ltcx均斩于马下,打到后期好像没人头铁冲我架狙的点了,iceworld中路也没人了,大家也都学会搜墙后面的大喷了,可喜可贺
高二省选结束,退役当天,我把自己的个性签名改成了“技不如人 甘拜下风”,虽然记录已经被我处理掉了,但那个瞬间确实是记忆犹新。
高中确实退役了,但是没写退役记,这篇也算是给他补上了(?)
后续的高三文化课故事好像就没什么好讲的了,总之结果是考上了平山村技术学院,减掉了竞赛期间胖的二十多斤,入坑了mrfz,还上手了羽毛球和跑步,稳中向好,让我们来到后续的大学生活。
高考报志愿结束之后,就决定下来了大学期间要打ACM,于是开始物色今后的队友。
由于时间节点还处于开学之前,没有什么靠谱的法子拿到同届生的联系方式,就只能靠水群了,在当年的20级新生群里猛猛灌水,顺带用高中的CF账号打捞队友。
那时的CF号是长这模样的,虽然只是个紫名,但在通货膨胀之前也不算太菜。
然后就给我捞到一个ghj1222(我要吐槽一下这个跟lpa博客一个画风的头像)
刚在群里捞到的时候,这人CF还是蓝名,简单聊了一下发觉还蛮不错,就寻思找几场CF的比赛看看情况,然后在暑假结束之前,这人就表演了一个阿克div2(?)
后面一起口胡了几场CF,发觉了一个很神奇的事情,鉴于他有高超的DP技巧,我有高超的DS技巧,难题要么他会,要么我会。
感觉很稳,于是当场组队,开始2 = 1。后续在群里捞了个湖北的女选wyl,队名随便取了个叫鸽子自动稽(之前好像还思考过南山必胜客这个名字(雾)),鸽子自动稽1.0版上线。
一开始打了两场ccpc网络赛,ghj猛猛carry,其中一场我半躺,wyl全躺,另一场我跟ghj一人一半,wyl不是非常理想。
出道战打的ccpc秦皇岛,莫名就Au了,感觉稳得不行,非常膨胀。
然后报了个ccpc威海,开局四个签到一发过,手速快的飞起,最高拿下rk2
然后就噶了,三人三线卡题到玉玉——我卡了个线段树哈希,小天才liangs333想了个%65536的高端点子,还没给自己叉掉,交上去WA到飞起;ghj卡了个博弈,wyl卡了个什么玩意搞忘了,然后三人莫得交流,轮流上机,全员自闭4h,习题Cu,打完有一种当场退役的冲动
后续一个网络赛打的非常好,貌似是rk7,恰了不少名额给我校,而后几场训练下来,wyl自闭了,决定真当场退役(
于是继续进入2 = 1形态,开始满世界物色队友。
当时大一,加上比较闲,赶着ICPC济南的时候去考场监考,正好碰上了隔壁队(当时还是隔壁队)的ljr,随一起监考 + 口胡,这场濠哥他们六题手快拿的Au,哥仨一起口了八个。
印象很深的是,在去给选手拿午餐麦麦的路上,我把一个构造想了出来,于是发觉在路上想题这个奥妙技巧。
监考完之后,正好ljr也有换队友的说法,于是就把他拉了进来,删库跑路1.0版上线。
此后就是漫长的动态演员生涯,ghj、ls、ljr这三位选手在ICPC2020昆明、ICPC2020EC、ICPC2021南京、ICPC2021昆明、ICPC2021EC这连续的五场ICPC系赛事中,分别取得了47、48、46、46、97名的好成绩,稳居银牌区,三位选手轮流开演,为观众姥爷们贡献了极佳的观赛体验。
聪明的观众可能会发觉,两赛季一共打了五场ICPC,第六场呢?由于当年深圳南山区防*不力,导致在ICPC2020沈阳开赛前夕,南山区有黄色**码出现,因此某身处深圳南山区的学校被指名道姓取消考试资格,那么猜猜这学校是哪座。
与此同时,在CCPC中,恰到了两块排名较为靠前的金牌,且在大一暑假的牛客里是长这样的
啊对,在广东省赛2020中,ls、ljr、ghj所在的队伍对于南科大的老师们进行了正义的三打二,将dls和cls所在的南科大一队成功以多打少,以一题的优势恰到了当年的广东省赛冠军(但是由于*情,没有颁奖典礼,我杯子呢.jpg)
考虑到该队伍在广东省赛的优异表现,奖励他们广东省赛终身禁赛。
怎么说呢,仨人平时训练赛跟ccpc的时候都好端端的,一到ICPC就直接化身马戏团,每次的主演还不确定——不好说是谁开演,但一定有人开演,奥妙重重,具体可以参考本账号的其他游记向的内容。
来到大三之后,由于我这边在准备就业,和哥俩商量了一下之后,决定停训不停赛,但停训之后成绩非常理想,猛猛恰金牌,还打到了2022EC的Au,非常奥妙,详情可以看这个账号的比赛总结。
需要重点提一嘴的是CCPC2022威海,比赛当天是2022.11.6,正好撞上了LOL S12的冠军赛,T1 vs DRX。
在T1 3 - 1了JDG之后我直接开了一瓶香槟(物理),当天感觉稳得不行,就跟哥俩说,快点切完我要出去看比赛结果,正巧这场比赛打的非常好。
然后在距离完赛18分钟的时候,GHJ搞定了最后一个最短路,交完之后我忽悠着俩哥们提前离场,退场之后打开手机,点开虎牙,英雄联盟直播间,看到Deft在接受采访,标题是恭喜S12世界冠军DRX战队。
怎么说呢 呃,看到这玩意之后我在教室里坐了半小时恢复心率,非常惊险刺激。
视角切换到我自己这边,在大一组完队之后的寒假里,进行了一波智力恢复训练,我记得是敲了差不多20场ARC,录了几个CF实况视频,并且成功在cf打到了橙色,当时还发了个说说庆祝,虽然最后被我删掉了就是(
贴个图在这里
然后在大一升大二的暑假,打完前半程牛客杭电后,我找了个班上(?)
当时被szsy的教练请过去讲课,在紧张刺激的一个月备课 + 不到一个月讲课的时间后,让szsy的孩子们深刻体会到了算法竞赛的博大精深,为他们带去了欢声笑语(啊?)
大概就简单讲了一下图论、线段树、一些基础的DP贪心什么的,还有一些比较基础的考试技巧和心态,并且成功地做到了寓教于乐,在课余时间带头玩jelly no puzzle,这几个孩子都被这游戏折磨的够呛(笑
在去之前其实还蛮怀疑自己的讲课能力的,但是开讲之后就会发现 其实还蛮好的,看着自己带的学生一天一天变强,班里的人一天一天变多,确实是个非常非常有成就感的事情。
结果上来讲,当时高一的四个孩子在高一好像都有恰到二等,高二更是四个一等,这下是非常满足,说明我的课没有白讲,钱没有白拿HHH
以及,还有孩子把我写进了退役小作文里面,怎么说呢,惊讶里面带着感动吧。
然后在学校这边,我担了四年的校赛组题任务,不过设备和domjudge、滚榜什么的,是一次没碰,全部丢给ghj
四年里面好像就第三年出现了事故,题目难度梯度跟题目质量都有较大问题,另外三年的参赛体验还是很愉快的,在这里为参与第三年校赛的选手们讲一句私密马赛(
好像就这样啦,流水账写到这里,也差不多该结束了。
这里贴一个学长的退役说说吧,当时看到的时候就已经在幻想自己退役的时候了,但怎么说,比之前想象中的要好受很多?
从初一寒假接触算法竞赛,到现在,掐指一算,九年。
我的竞赛旅程相较于这位学长来讲会更加幸运一些,但感触其实是大差不差的——如果不是算法竞赛的话,没准我现在正在哪个学校的数学系念大四,已经申好了阿美莉卡的金融硕,准备去投靠姑姑她们家来着。
怎么讲呢,就是蝴蝶效应吧,一个不经意间的决策会有很深远的影响,我非常庆幸,现在看来,这种影响是正面的。
大概是不会再在cf上面看到liangs333这个ID了,但也许以后的某个regional里面,如果出现了一些神奇的赞助商队伍,我会在里面也说不定(笑)
算法竞赛选手liangs333的故事到这里就结束了,以后应该是游戏客户端工程师liangs333了,或许会兼职一下教练liangs333,看看有没有倒霉孩子愿意来听听我讲课就是。
最后的最后,祝看到这里的选手们在算法竞赛中玩得开心,GL & HF,并如果足够幸运的话,找到自己值得为止努力下去的事业吧。