致理科大全國程式力競賽——心得(和對TQC+的看法)
全國程式力競賽
這次受我校圖書館主任(aka 前班導 aka 前數學老師 aka 前 AI 班老師)邀請,我和 @郭10 報名了致理科大全國程式力競賽。
一看到是 TQC+ 辦的,我當時就有一種說不出的安心感,畢竟他們的程式認證或比賽,那可是出了名的專出水題。我曾在學校參加過一次 TQC+ 的檢定並滿分通過,也參加過他們辦的比賽並得了全國第三、北區第二(但那次只有 Python 組,C++ 組是分開排名,這次則是只分高中職組和大學組,語言不另排名),這兩次我基本上寫到的題目都簡單到極點,可以說是只有速度上的差異,難度上基本可以說是沒有鑑別度。
果然,考卷一下來,你只要全基本語法,也至少可以拿個 80 分(滿分 100 分),唯一死比較多人的是,它考了一題讀檔寫檔(TXT 檔)操作,競程玩家表示你玩不起,但好在我學過,這次又是 100 分提前交卷,成了第二個走出考場的人,七題用不到半小時,而第一個走出去的是 @郭10 的一個朋友(@Cheng),我們也在賽前互相認識了一番,又交了一個電神朋友,真不錯。
最終結果
關於 TQC+
前面說過,TQC+ 的題目專出水題,要不是這次有獎金我才不來呢,這次我寫題時甚至有種「我怎麼好像看過這題」的感覺。直到結束後,才有人告訴我,TQC+ 辦的比賽和檢定用的都是同一套題庫,而且題目其實不多,一下就可以寫完,我也才想起我其實寫過整個題庫的題解,我把它的 Python 解全放到了個網外,也加了個 C++ 的解。那麼他們到底有什麼問題呢?讓我們一一細數。
首先,或許 TQC+ 辦這種比賽和檢定的用意是給那些剛學程式的新手寫的,但會知道和參加這個比賽的人,很多又是相當有程式基礎的競程人,甚至這次參賽名單上,還有一個聽說是選訓的佬來參加。
第二是計分和電腦環境問題,我和 TQC+ 的三次交手中,因為第一次在我們學校的電腦教室,相對來說沒什麼太大問題,但二、三次都是在致理科大,而這兩次中,我和朋友的電腦環境都出現了問題,小到 VS Code 語法高亮和自動補全突然炸掉(前面都好好的),大到規定的資料夾被鎖管理員權限開不起來,以及 C++ Compile 前還得先把前一次生出來的 EXE 檔刪掉等等大大小小的問題,讓我對這個比賽的環境穩定性和公平性產生了相當大的質疑,畢竟那個第二次的比賽時間是很緊湊的,處理環境問題的幾分鐘,可能是少 20 分的關鍵。
第三,題目水、Online Judge 不計時(即不限程式的執行時間)、只有很少題目給數字範圍(雖然經實測,所有題目都能用單精度的 float 和有符號的 int 存下)。水題的問題是鑑別度差,對於比賽而言,這無疑是致命的;OJ 不計時和不給數字範圍的問題,更是讓它透出一種鳥題的味道,題目也真的是有手就行的程度,不用演算法、不考慮複雜度、提交還沒有罰時,更重要的是,測資稀爛不說,還用的是即時評測,要寫出假解可以說是相當容易了。這種種如果作為檢定,那都不是問題,但作為比賽,這問題可太大了,對於有點基礎的人(同時也是最可能拿獎的那批人)而言,這根本是打字速度比賽。
最後,用公開題庫出題才是我認為真正最影響考試公平性的問題,這意味著任何一個有一丁點程式基礎的人,只要有了這個題庫,那滿分簡直有手就行,但偏偏還不是所有人都知道題庫,官方也沒有明講這一點,這就十分不公平了,尤其對於這麼一個有獎金的比賽裡。
結論,TQC+ 拉完了,我前兩次參加的比賽或檢定,頂多可以說有點問題,但這麼個有獎金的比賽如果還這麼搞,對於規則的非受益者而言,可以說是相當搞心態了,不過半小時賺 $1500 還是挺爽的。