您好!
我是一個擅長早起的兔子圖示使用者Un_titled。
這次我在AtCoder上綠了!!

我打算將成為綠牌的過程寫成文章,並全力以赴發揮我的國語能力。
如果可以的話,請您耐心欣賞到最後!
在撰寫過程中比我想的要長得多...
如果您時間有限,我強烈建議跳過您不感興趣的部分。
我只是一名普通的高中生。競技程式設計從國三開始接觸。在此之前完全沒有使用過任何程式語言,從零經驗開始,直到現在。
關於我的入茶歷程,請參考我的入茶文章!
入茶時的能力大致如下:
因此我做了一個夢,夢到重回灰牌。那真的是精神上的一種考驗…。
我注意到競技程式設計的上下文中常提到「數學能力」,所以在這裡也稍微提一下。
高中數學在入茶前已經全部修完。(水平大約是青圖的難度。2B的所有題目我都能解答,但3C部分僅能解出例題層級。)
不過並不表示我對數學思考類問題特別擅長。
雖然我從未接觸過競技數學,但由於我曾經解過難關高中的數學,因此在入學考數學方面還算不錯。
我擅長的領域是代數和圖形,而不擅長的領域是幾何和統計。
簡而言之,我只是想表達我不是那種能在競技數學中名列前茅的天才。
這篇文章的主菜。
大致上是這樣。
進入綠牌時的問題狀況如下。


<details><summary>其他問題的詳細資訊</summary>






</details>
我對結構體這部分之前有些排斥,但後來認真學習了。
(這是有原因的,因為我想學習 Union-Find 的時候卻沒辦法使用類別。)
在變成茶色之前,強烈建議把APG4b從頭到尾過一遍!
等到真的不會的時候再回去再做真的很低效。
最好先看一遍,不懂的地方再回頭。
我嘗試了一遍,但還有些未做的內容。
<details><summary>章節習得程度與未能解決的部分</summary>
「無法解決的部分」是在理解的情況下但沒信心在不看任何資料的情況下能寫出來的項目。
| 章 | 演算法名稱 | 完成度 | 無法解決的部分 |
|---|---|---|---|
| 1 | 基礎・全探索 | 全部完成 | 無 |
| 2 | 累積和 | 全部完成 | 沒特別的問題 |
| 3 | 二分搜尋 | 全部完成 | 答案用二分搜尋 |
| 4 | DP | 全部完成 | LIS、區間等很多 |
| 5 | 數學 | 瀏覽一遍 | 從必勝法以後 |
| 6 | 思考方法 | 瀏覽 | 整體持懷疑態度 |
| 7 | 頂點倍加 | 幾乎無 | 全部無法 |
| 8 | 資料結構 | 全部完成 | 延遲區間樹 |
| 9 | 圖 | BFS、DFS、Dijkstra、UF | 樹狀DP、流等 |
接下來想要學習的項目:
在FF的推薦下試著做了一下。在灰色的時候雖然知道這件事情,但從未做過,因此填完了★2到★4。
這個「典型」看似容易的名字卻相當困難。
到★3幾乎能獨立AC,但★4多數都是解說AC...這是成長的空間呢…
填的時候因為沒有管理的服務,所以我在Notion自製了一個。
我可以相當細緻地管理,還能做很多整理。
如果需要的話歡迎使用。
(公開結束的時間未定,可能不預告地終止,敬請見諒。)
填完典型後,我意識到自己對DP特別薄弱,因此稍微嘗試了一下。
但是普通的難度使得我選擇將時間分配給其他演算法,最終只做到了D。
EDPC也是DP的練習,但JOI填完也能練習DP。如果想在JOI中取得好成績,先做JOI填完可能會更有效率。
進度如下。

對於JOI的過去題目填完,我也製作了一個類似典型90的任務列表進行管理。
因為JOI與ABC在出題趨勢上有差別,對於想要專注於JOI的人,我強烈建議將精力投入於JOI的過去題目。
(我感覺在JOI中不太會出「貼上就能解決」的演算法。在ABC中見過幾次直接用UF的情況,但在JOI中感覺到的卻是使用Dijkstra的情況。)
即使這樣,持續做JOI的確有顯著的改善。從限制與問題描述能夠思考「要怎樣持有數據才能減少計算量與內存」,感覺就能解決問題。
從部分點的限制推理出來能分階段解決的部分,非常適合作為練習。
我真的不知道該多少次感謝NoviSteps... 真的是太有幫助了。
雖然難度(diff)非常重要,但依照自己的步調依序解決問題也非常必要。
(即使是已知道的,只要貼上就能解的問題,對於其概念的難度即使很高,難度指數會有明顯下降。光看難度指數的話,這樣的門檻讓我感到很困擾,因此真的非常感謝這個。)
一開始我做了2Q,但因為覺得能做到不少題目,所以並沒有完成,而是以1Q為主。
有人建議可以試試1D,但那個難度太高,跟另一個世界似的,所以還沒能做到。
以下是進度
<details><summary>NoviSteps進度</summary>


</details>
upsolve是我想重新學習演算法的契機,或者是學到新用法的契機。
對於綠色難度以下沒能解的題目,我必定會進行復習,如果有可能的話也會嘗試水色、藍色的難度。
隨著對於鐵則的學習進度提升,僅僅查看題目的TL就能獲得解法的提示,讓我在Twitter上過得相當充實。
中途我的環境壞掉了,第一次導入WSL。
因為我無法自己構建環境,所以請FF幫忙。
在這裡向他表達感謝,非常感謝。
之後我隨興創建了GitHub帳戶,開始學習HTML和CSS。
JS還在學習中,目前無法使用(至少能發出提醒)。
還嘗試安裝了blender。到目前為止什麼都還沒觸碰。
在灰色時期只學過字串,但後來一直放著沒有做…
目前沒有足夠的時間學習。
關於啟發式,在長期來看我只提交過樣本,幾乎等於未參加。
我創建過像是こどしぇ、こどふぉ等的帳戶,但至今未能有所進展。
我也希望未來能學習這些東西。
有一天...等到有餘裕的時候...是的...
在努力精進的過程中,記錄下「這些東西用得真好!」的物品。
我非常推薦Notion!!
除了JOI填完和典型填完之外,我還用來記錄新學到的演算法與不曾知道的寫法。
我認為這非常適合輸出。在PCK期間我將自己的Notion打印出來,作為備忘錄進行參考。
在AtCoder Clans上學到了很多。
這裡是一些推薦的擴充功能:
我原本打算補充一下擴充功能的功能,但因為時間不夠而作罷,真是抱歉。
真的能改變很多,所以別猶豫,快去安裝擴充功能吧。
我也在進行手機編碼,但沒有擴充功能的話會非常困難。
這裡記錄我至今的感想等。
這的確重要。創造時間真的非常重要。
對比Problems的heatmap與等級的變化,您會發現7月集中精進與11月之後增長巨大。
真切地感受到創造時間是相當重要的。
作為學生,優先考量學業使得常常無法創造出足夠的時間。
(實際上我在灰色的時期因為高中入學考幾乎無法精進過。)
幸好參加JOI等活動成為創造時間的契機,是非常有效的。
我最困難的記憶主要是使用遞迴的全搜尋。
我實在對遞迴苦手。隨著撰寫的過程,這問題得到改善。
如果有同樣對遞迴感到困難的夥伴,強烈建議不斷練習這個問題。
此外,頂點倍加的掌握也花了不少時間。
只要掌握了頂點倍加的思維,DP和圖形演算法的能力也會明顯增強。
這需要毅力。
總體而言,我深切感受到,即使理解了典型,卻無法應用到實際的困難。
對於這個問題,多做練習會有幫助。透過解決NoviSteps的問題集或參加JOI來改善。
就我個人而言,從灰色到茶色的障礙更高。
我常聽說思考上要花費時間,但我個人認為「如果思考停頓三分鐘,可以查看答案」。
這可能是因為我學習數學的風格是「立即查看答案並記住問題」。
現場比賽!真的激勵人心!!!
今年夏天我參加了人生第一次的現場比賽(CodeQUEEN決賽),我獲得了極大的刺激!
我也寫了參賽記錄,希望您能讀一下!
感謝您閱讀到這裡!!!
由於對寫文章不太熟悉,可能存在難以理解的部分。要是您讀到最後,我由衷感謝您。
如果有任何不明白的部分,請通過評論或者Twitter的私信告訴我,我會非常感激。
最近我真心熱愛競技程式設計,腦海裡總在思考各式各樣的問題。
到目前為止能對某件事物如此著迷,真的是我人生中的第一次。
能遇見這種興趣讓我感到如同夢境。
在競技圈中能繼續努力,無疑是因為周圍的FF們在我遇到困難時提供指導和幫助。真的非常感謝。
未來我會更加樂在其中,努力精進競技程式設計!
期待下一篇文章再見!