1. 程式人生 > >Goodbye 2018

Goodbye 2018

Goodbye 2018

本來想在2018年12月31日的夜裡面再寫這一篇的,但是可巧今個週末要寫一篇叫做“路”的隨筆,寫完後有感而發,寫下這篇文章。

裡面的一些簡寫:bcb—程式設計班 OJ—Online Judge AC—Accepted WA—Wrong Answer TLE-Time Limit Exceed MLE—Memory Limit Exceed CE—Compile Error

想起來,走上OI這條路,應該是三年前的事情了吧。

初一

小學時期畢竟是縣區裡面,見識太少,就沒有聽說過“程式設計”這個詞。小升初暑假後期才聽說開明有一個叫做“程式設計班”的東西,但是又打聽到開明程式設計班是在考完當時的連續的三場考試不久就應該報名的,也沒怎麼放在心上(還是繼續那個難得的暑假裡面到處玩,聽說現在的bcb已經是從那個暑假就開始訓練的了)。

但是開學以後,當時學校要求初一的兩個創新班統一學習程式設計,所以在大概是第一次期中考試前後,就開始在資訊課上一起學C++。本來也沒太關心,只是把這個當做資訊課的一部分來上。(因為我們縣裡面的小學基本上都沒怎麼上過資訊課,所以能上就已經很感動了)

後來一直到大概已經開始學運算子與輸入輸出的時候,某天中午沒有作業實在閒的無聊,把當時統一買的教材拿過來翻翻,看看上面的註解,發現自己竟然有點理解當時“Hello, World!”的程式的時候,才開始感受到這個東西的神奇。然後大概就是這個時候感受到程式設計這個東西的神奇,也大概是這個時候開始有點喜歡程式設計。

然後就開始沒事的時候就把教材拿過來看一看,把上面的題目寫一寫。一開始寫的不太熟,一個七八行的程式要寫十分鐘左右,而且小學也沒怎麼碰過電腦(大概也是因為這個吧,嗯小學時候的視力非常不錯),打字都不太熟,也導致現在連打字的指法都不會。後來漸漸寫熟了,打字也變快了,但是指法還是不會。然後把之前欠的題目都寫完了以後,就開始預習後面的東西——大概在同學們在上條件語句的時候,已經預習到了迴圈結束,他們在學迴圈的時候我已經開始看陣列,他們上陣列時我大概再看函式和遞迴……

但是也不知道自己寫的程式對不對,所以有一次把寫的程式在十點多的時候發給了陸老師,裡面有一個輸入月份輸出天數的程式,我當時加了一個輸入月份以判斷是不是閏年,但是為了判斷和用switch語句判月份寫的比較繁瑣,所以第二天陸老師讓同學們一起來一個判斷閏年的程式,我想到了可以用||&&語句結合起來只要一句話就可以判斷,於是立刻寫了一個交了上去。當時發程式的時候沒寫我名字,但是陸老師表揚“這個平時在堅持練習變成的同學”,心裡面特別高興。

不過當時也還是沒怎麼把程式設計放在心上,只是因為我不太喜歡玩遊戲,所以空閒時間才來程式設計,平時還是以學文化課為主,發誓要在期末考試一雪期中考試的恥辱。

寒假裡只用了兩天時間就把陸老師佈置的所有寒假作業都做完了。

但是當時對程式的時間限制、空間限制、複雜度……這些東西都是一無所知,所以有幾道題目現在回看起來,寫的都是過不去的,其他題目大概也應該有一些細節錯誤吧。

而且當時甚至不知道陸老師一直跟我們說的“測試”的評判標準是用很多個測試點來輸入進去,比較程式輸出與標準輸出,而是以為像別的考試一樣評卷人開啟程式看看你寫的是什麼,所以到處在程式裡面輸出“Please input the number of the apples:”或者寫上cout<<“The maximum of this sequence is ”<<ans<< "."<<endl;的話。

然後開學以後要組成正式的程式設計班了,進行了一場考試以從創新班中每個班選出20個人參加bcb。

是一次考試的時候陸老師送來了名單,然後考完試以後我們就去機房集合,還把我之前的一個用來做純粹的興趣小組用的qq群貢獻出去作為bcb的群。記得當時也就以為是為這個團體第一次做了點事情,高興得晚上睡不著。

然候有認識了Open judge這樣OJ可以提交程式,以第一次認識到Accepted Wrong Answer Runtime Error Time Limit Exceed Compile Error這些東西,也瞭解到並不是程式寫出來了就算是解決了一道題目。

我記得我當時英語不太好,一直到夏令營之前,都以為Runtime Error是超時的意思,還是夏令營的時候記不得是wph學長還是lzh學長問我這個是什麼意思,然後我坦率地說了一句“超時”,但是他卻發現還有一個叫做Time Limit Exceed的東西。

但是初一下學期也還是依然不知道程式設計這東西到底有什麼用,仍然不知道還有一個叫做NOIP的東西。(瞭解這個應該還是夏令營的時候了)

所以也還是沒有把這東西放在心上,平時做些題的唯一動機也還是因為喜歡,所以也沒有怎麼認真的練,這或許也是導致現在和thx,wph,zby這些學長以及全國以內廣大的OIer那麼大差距的一個原因吧。

這一個學期,大概是學了一些排序、棧和佇列以及寬搜深搜這些。

初一時候,相比於程式設計,我反倒是更熱心於班級裡面的事情,在圖書角搞了一堆活動,還辦了一個短命的星跡月刊。

一直到學期快要結束,才知道省裡面有一個夏令營,就去報名了。陸老師說要讓我報普及組一班,跟學長們報一個層次的班級。當時也沒有多想,但是現在看起來是多麼傻,能夠跟學長們多交談卻沒有好好珍惜。

但是又說學校名額不夠,所以進行了一場選拔考試。我在初一 一直有個壞習慣,就是不信任題面,基本上開的陣列的範圍都是瞎打了,普遍比要求的資料範圍大上十倍二十倍。然後大概六道題有三道題MLE,導致白白丟了一百多分。而且對題目細節也不太關心,甚至說出“我樣例都過了怎麼會錯呢?”這樣的傻話。所以這場考試只有30分,這大概是我初中以來第一次打擊吧。感覺自己去不了夏令營了,當晚給陸老師發qq求助但是陸老師,後來陸老師也還是有要了一些名額,所以終於還是去了夏令營。

在夏令營裡面認識到有NOIP這樣的東西,而且還見了世面,瞭解到一些更多的知識,也認識了一些上一屆的學長。記得但是夏令營最後考試的時候,wph學長偷偷教我打了T4的兩個表,然後好像都打中了qwq。

唯一的問題就是沒有主動和更多的學長交流,以至於失去了很多機會。記得最後一天聽課的時候,thx學長好想就坐我旁邊,但是我初一的時候一直不太敢和別人交流,所以甚至沒敢說一句話,白白失去了那麼好的機會。所幸最後在回程的車上,有幸和張坤學長交流,瞭解到了一些關於輸入輸出和碼風的問題,以及應該怎麼學OI的話。

但是因為我在夏令營最後考試的成績還不錯,暑假的做題也放鬆了不少,少做了很多題目,這可能也是間接導致了NOIP2016的慘敗吧

初二