avatar
@bangbang93

写给已经结束的我的OI生涯

11/13/2011, 7:36:15 PM

随着比赛结束的命令,我的高中阶段的OI生涯到那时结束了。

第一次接触信息学竞赛是在小学六年级。那会儿我只是想要一个和电脑有关的竞赛,去太原市少年宫转了一圈,选择了信息学竞赛。我的影响很深,那个时候是一下午三个多小时的课,每节课一个小时,分三节课。老师不太讲,他的理念是自学。于是我就照着书开始写起了Pascal。在Pascal之前我学过VB6,所以语法什么的很快就学完了。

到了比赛时间就被拖去比赛。那年我记得山西的分数线是40多分,我是擦着线进去的。初赛没有特别准备过,到了赛场上才发现有好多不知道的东西。幸好擦着线进了复赛。复赛中由于写出的程序没有用过评测软件跑过,所以当年我就把文件的读写路径写成了绝对路径,于是0分。

(关于绝对路径和相对路径,我补充一下吧,绝对路径是指一个文件的带盘符的地址,比如今年我比赛的时候,第一天的第一题文件名叫做carpet.pas,余姚实验中学建好的选手目录在D盘下,于是这个文件的绝对路径就是“D:/ZJ-xxx/carpet/carpet.pas”,carpet.pas编译完毕的文件叫做carpet.exe,现在写文件读写的时候都是直接写文件名的,于是carpet.exe就会寻找同目录下的carpet.in,所以carpet.in相对carpet.exe的相对路径就是“./carpet.in”,“./”可省略。第二题是hotel.pas,它相对carpet.pas的路径就是"../hotel/hotel.pas"。当年我就把”assign(input,'xxxx.in');"写成了"assign(input,'e:/CX-xxx/xxxx.in‘);"当年我还不知道FP和Change Dir,所以调试的时候一直提示Runtime Error 2,就写了绝对路径。评测机上因为不是这个路径,所以就到了评测机上成了RE2,于是0分)

进了初中,我到了杭州。却屡屡与复赛无缘。每次都是被初赛的分数线刷下,以致我现在都没有初中学过NOI的记忆,我妈说我初中也在学,我却完全没有初中写过代码的记忆。

于是就这样我进入了中考模式,凭借彪分能力进入了杭十四中。原本高中的信息学竞赛班都是保送生中挑出来的。但是我妈让我去找老师,于是我又在高中捡起了NOI。但是当时我的数学成绩和年纪名次都是一塌糊涂(现在也是),而NOI在一定程度上还是和在校成绩有关联的,至少数学不能太差,而我的数学中考只有88分(满分150),于是高一和高二又没能进入复赛。高三想着一定要进,于是翘掉了几节晚自修,作业什么的见鬼去吧,老师来追也不管了,总算又比分数线高几分进入了复赛。进入复赛的第一次复习距离上次写程序是整整一年的时间,去年高二的时候没有进入复赛,于是也就没有跟着进了复赛的那群家伙继续参加训练。时隔一年的码代码却发现自己已经将算法忘得一干二净。别说做题了,什么动规、贪心、深搜、广搜,基本的回溯也忘光了。于是又是一星期的作业和晚自修见鬼去吧。抓紧时间复习了深搜、广搜、贪心、动规、图论、最小生成树、最短路径、快排、堆排、二分、高进度、暴搜和剪枝以及其他一下子没想到的各种算法。

就这样到了余姚。对于完全没时间复习的自己是十分的没有信心。于是去NOIP贴吧闲逛,看到了不少和我一样的高三党,尽管没了保送,大家还是没有放弃这个自己已经投入了数年的竞赛。每个人接触的契机或许都不相同,并且不不像其他科目的竞赛那样学了会对高考科目有相当大的正面影响,带来的只会是比赛结束后无限的补作业和赶课。最后一晚上的紧急背代码,又看了看堆排、并查集、KMP、记忆化搜索。带着些许不安,我上床睡觉迎来了第一天的比赛。

现在听着FRACTALE的OPED总辑的第三首曲子真是很有感觉。

第一天比赛的早上,趁着早饭吃完还有一点时间,我又背了一遍堆排,然后就开赴考场。路上为了不让自己的手冷掉而影响打字速度和精度,将手缩在袖子里。进了考场,习惯性的看了一下机器的配置,赛扬420的CPU,512M的内存。然后检查环境。调整屏幕分辨率(默认是坑爹的640*480),我习惯用GUIDE,于是再将GUIDE的编译器改为相对稳定的2.0.4版本(比赛须知上写了同时提供2.0.4和2.4.0的环境,默认GUIDE连接的是2.4.0),测试了“hello world”程序,检查无误后开始默写堆排。然后就等比赛开始了。

第一题和第二题花了不久就找到方法了。但是第三题一看傻眼了,这该怎么玩。然后突然想起了前一天晚上看的《骗分导论》,说道当遇到不会的题目的时候去看看数据范围,一看只有1≤n≤5,这铁定暴搜嘛!于是又把题目读了两遍之后就开始着手模拟和暴搜。但是比赛结束前却没有调试出来,所以只好果断加入writeln(-1)党了。

第一天比赛的下午,休息了一下,看了一会儿新番。前段时间攒下了近20集的新番。晚上接着复习图论。结果却完全没有考到。

这天晚上又去转了转NOIP的贴吧,又看到了不少高三党。

第二天的比赛,非常坑爹,我前一天准备了什么它偏偏不考什么,我非常努力的看了图论和动规,结果完全没用到。

在回杭州的火车上,我想着这些年来的OI生涯,有过0分的痛苦回忆,也有自己还有机会玩电脑的高兴;有过程序怎么也改不对的难受,也有样例不过,却拿满分的兴奋;有过完全没有思路的烦恼,也有过藐视弱题直接用记事本写程序一气呵成的舒心。

还愁着自己能不能关于NOI写出点什么东西,但是到现在却渐渐地敲了一千九百字了已经。平常连考场作文凑800字都十分困难的我居然打出了1900+的文章。

静下来才发觉原来已经过了这么多年了,从小学六年级开始,到现在的苦逼高三党,经历过Vijos,自己研究过OJ系统,但是因为没有MS SQL的环境而没法在网站上架设。后来Vijos彻底没了,去玩USACO,一边练习英语阅读能力一边做题。然后是TYVJ,marcool,和现在新开的e星论坛,不过这货号称电信机房,但是访问速度却比我的网站都慢。或许等我大学了会再度捡起OJ系统的研究将其移植到MySql上吧,那时候大家就能看到一个崭新的OJ系统了。

前面三段总是会觉得打到这里差不多了,但是随后又觉得还不够,但是却不知道在说些什么好。也许是由于对这么些年来自己一直在追寻的就到此为止的不舍吧。就这么打打停停又过去了一个小时。虽然依旧不舍,虽然不想结束。但是作为一名优秀的苦逼高三党,我不得不再次回到高考的轨道上去。

哎……高考啊

program MyOi(input,output);//好久没打过这行了
uses dos;
type
bangbang93:record
oi,UniversityEntranceExamination:proceeding;
computer,acgner:hobby;
end;
var
me:bangbang93;
y,m,d,dw:word;
begin
getdate(y,m,d,dw);
while (y=2011) and (m=11) and (d=6) do //我于2011年11月6日正式进入NOI准备阶段
begin
me.oi:=start;
me.UniversityEntranceExamination:=pause;
me.computer:=love;
me.acgner:=love;
end;
while ((y>=2011) and (m>=11) and (d>=14)) and ((y<=2012) and (m<=6) and (d<=9)) do
with me do
begin
me.oi:=stop;
me.UniversityEntranceExamination:=start;
me.computer:=love;
me.acgner:=love;
end;
while true do
begin
me.computer:=love;
me.acgner:=love;
end;
end.
//I hope endless forever

(不算这行,word说我打了3316个字,估计这是这个博客目前为止最长的文章了)