這並不是誇張。
在A題上卡住,在B題上誤讀限制,C題根本不看。
賽後,看著時間軸上流出的「首次參加就解出C題」的報告,靜靜地關閉瀏覽器。
而我在做什麼呢?
我算是那種「在工作中寫代碼的人」。
不過,AtCoder我完全無法搞定。
在此我先聲明,這篇文章並不是想要否定AtCoder或競技程式設計。
在有限的時間內閱讀問題、洞察解法,並準確實作的能力,從常理來看是相當高難度的,我覺得能做到的人實在是相當厲害。
這篇文章是為了整理「為什麼我做不到」的幾乎自我分析。
首先給出結論。
我並不是不會編程,而是不擅長競技程式設計。
這兩者看似相似,實則有著相當大的不同。
每次看到AtCoder的問題,我都想著。
那麼,這個問題我該回憶起什麼?
業務編程的流程是,
而AtCoder的流程則為,
這是個完全不同的世界。
當然,這並不是說「因為是記憶遊戲就簡單」。
反而是相反,我認為理解大量典型的同時,能瞬間調用起來本身就是一種專業技能。
然而,我幾乎沒有進行過那樣的訓練。
在業務上,通常會這樣告訴我。
而AtCoder的代碼呢?
i, j, kmain 一個函數在AtCoder寫代碼時,
這樣我之後可讀性恐怕不高……
的想法會浮現。
然而「之後」這一刻永遠不會來,通常在到來之前就結束於TLE或WA。
AtCoder的問題通常是這樣寫的。
1 ≤ N ≤ 2×10^5
能競技的人看到這個,會立刻判斷:
(我想應該是這樣的)
而我則是,
思考就停下了。
在業務中,
就可以解決了。
我從未訓練過在看到限制的瞬間就制定策略。
在業務中,代碼寫得很謹慎。
在AtCoder中,根本沒有那樣的時間。
尤其是Go。
bufio.NewReader不知不覺間30分鐘過去了,問題幾乎沒什麼進展。
我最近有這樣的感覺。
AtCoder與運動其實非常接近。
那些日常鍛鍊的人會更強。
而我鍛鍊的卻是,
所用的肌肉完全不同。
因此,當我看到在AtCoder能穩定解題的人時,自然會認為他們「真厲害」。
他們經歷過我沒有的訓練,具備我不具備的判斷力。
我想應該不算失敗。
但有幾個事實是存在的:
如果認清了這些事實,那麼,
只是選擇而已。
與我有相同經歷的人,或許不在少數,說明在工作中寫過代碼卻在AtCoder上完全無法解題的人,真的不只是你一個。
至少我就是這樣的。
如果覺得這篇文章不錯,請讚好、收藏、關注謝謝🙏
原文出處:https://qiita.com/Shiro_Shihi/items/31b9e50abda41e4c2b71