🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

Hello World

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

AtCoder_rate.png

我打算將成為綠牌的過程寫成文章,並全力以赴發揮我的國語能力。
如果可以的話,請您耐心欣賞到最後!

目次

在撰寫過程中比我想的要長得多...
如果您時間有限,我強烈建議跳過您不感興趣的部分。

簡單的自我介紹・規格

我只是一名普通的高中生。競技程式設計從國三開始接觸。在此之前完全沒有使用過任何程式語言,從零經驗開始,直到現在。
關於我的入茶歷程,請參考我的入茶文章!

入茶時的能力大致如下:

  • ABC的A、B兩題穩定解題
  • C題相對較少解出,主要依賴快速解答提升等級

因此我做了一個夢,夢到重回灰牌。那真的是精神上的一種考驗…。
我注意到競技程式設計的上下文中常提到「數學能力」,所以在這裡也稍微提一下。
高中數學在入茶前已經全部修完。(水平大約是青圖的難度。2B的所有題目我都能解答,但3C部分僅能解出例題層級。)
不過並不表示我對數學思考類問題特別擅長。
雖然我從未接觸過競技數學,但由於我曾經解過難關高中的數學,因此在入學考數學方面還算不錯。
我擅長的領域是代數和圖形,而不擅長的領域是幾何和統計。

簡而言之,我只是想表達我不是那種能在競技數學中名列前茅的天才。

綠牌前做了什麼?

這篇文章的主菜。

大致上是這樣。
進入綠牌時的問題狀況如下。

Problems_achievement.png

Problems_heatmap.png

<details><summary>其他問題的詳細資訊</summary>
Problems_ABC.png
Problems_ARC.png
Problems_category_pies.png
Problems_difficulty_pies.png
Problems_daily.png
Problems_TEE.png
</details>

APG4b

我對結構體這部分之前有些排斥,但後來認真學習了。
(這是有原因的,因為我想學習 Union-Find 的時候卻沒辦法使用類別。)

在變成茶色之前,強烈建議把APG4b從頭到尾過一遍!
等到真的不會的時候再回去再做真的很低效。
最好先看一遍,不懂的地方再回頭。

鐵則

我嘗試了一遍,但還有些未做的內容。

<details><summary>章節習得程度與未能解決的部分</summary>
「無法解決的部分」是在理解的情況下但沒信心在不看任何資料的情況下能寫出來的項目。

演算法名稱 完成度 無法解決的部分
1 基礎・全探索 全部完成
2 累積和 全部完成 沒特別的問題
3 二分搜尋 全部完成 答案用二分搜尋
4 DP 全部完成 LIS、區間等很多
5 數學 瀏覽一遍 從必勝法以後
6 思考方法 瀏覽 整體持懷疑態度
7 頂點倍加 幾乎無 全部無法
8 資料結構 全部完成 延遲區間樹
9 BFS、DFS、Dijkstra、UF 樹狀DP、流等

接下來想要學習的項目:

  • 樹狀DP
  • 加權UF
  • 耳DP、LIS、區間DP等
  • 頂點倍加
  • 延遲區間樹
  • 頂點倍加
    </details>

典型90填完

在FF的推薦下試著做了一下。在灰色的時候雖然知道這件事情,但從未做過,因此填完了★2到★4。
這個「典型」看似容易的名字卻相當困難。
到★3幾乎能獨立AC,但★4多數都是解說AC...這是成長的空間呢…

填的時候因為沒有管理的服務,所以我在Notion自製了一個。
我可以相當細緻地管理,還能做很多整理。
如果需要的話歡迎使用。
(公開結束的時間未定,可能不預告地終止,敬請見諒。)

EDPC

填完典型後,我意識到自己對DP特別薄弱,因此稍微嘗試了一下。
但是普通的難度使得我選擇將時間分配給其他演算法,最終只做到了D。

EDPC也是DP的練習,但JOI填完也能練習DP。如果想在JOI中取得好成績,先做JOI填完可能會更有效率。

JOI填完

進度如下。

image.png

對於JOI的過去題目填完,我也製作了一個類似典型90的任務列表進行管理。
因為JOI與ABC在出題趨勢上有差別,對於想要專注於JOI的人,我強烈建議將精力投入於JOI的過去題目。

(我感覺在JOI中不太會出「貼上就能解決」的演算法。在ABC中見過幾次直接用UF的情況,但在JOI中感覺到的卻是使用Dijkstra的情況。)

即使這樣,持續做JOI的確有顯著的改善。從限制與問題描述能夠思考「要怎樣持有數據才能減少計算量與內存」,感覺就能解決問題。
從部分點的限制推理出來能分階段解決的部分,非常適合作為練習。

NoviSteps

我真的不知道該多少次感謝NoviSteps... 真的是太有幫助了。
雖然難度(diff)非常重要,但依照自己的步調依序解決問題也非常必要。
(即使是已知道的,只要貼上就能解的問題,對於其概念的難度即使很高,難度指數會有明顯下降。光看難度指數的話,這樣的門檻讓我感到很困擾,因此真的非常感謝這個。)

一開始我做了2Q,但因為覺得能做到不少題目,所以並沒有完成,而是以1Q為主。
有人建議可以試試1D,但那個難度太高,跟另一個世界似的,所以還沒能做到。

以下是進度

<details><summary>NoviSteps進度</summary>
atcoder-novisteps.vercel.app_problems (1).png
atcoder-novisteps.vercel.app_problems (2).png
</details>

ABC的復習

upsolve是我想重新學習演算法的契機,或者是學到新用法的契機。
對於綠色難度以下沒能解的題目,我必定會進行復習,如果有可能的話也會嘗試水色、藍色的難度。

隨著對於鐵則的學習進度提升,僅僅查看題目的TL就能獲得解法的提示,讓我在Twitter上過得相當充實。

綠牌前做的事情:余談

中途我的環境壞掉了,第一次導入WSL。
因為我無法自己構建環境,所以請FF幫忙。
在這裡向他表達感謝,非常感謝。

之後我隨興創建了GitHub帳戶,開始學習HTML和CSS。
JS還在學習中,目前無法使用(至少能發出提醒)。

還嘗試安裝了blender。到目前為止什麼都還沒觸碰。


相反地沒有做的事情

ALGLIB

在灰色時期只學過字串,但後來一直放著沒有做…

ADT

目前沒有足夠的時間學習。

啟發式及其他比賽

關於啟發式,在長期來看我只提交過樣本,幾乎等於未參加。
我創建過像是こどしぇ、こどふぉ等的帳戶,但至今未能有所進展。

我也希望未來能學習這些東西。
有一天...等到有餘裕的時候...是的...


精進的伴侶

在努力精進的過程中,記錄下「這些東西用得真好!」的物品。

推薦Notion

我非常推薦Notion!!
除了JOI填完和典型填完之外,我還用來記錄新學到的演算法與不曾知道的寫法。

我認為這非常適合輸出。在PCK期間我將自己的Notion打印出來,作為備忘錄進行參考。

擴充功能的推薦

AtCoder Clans上學到了很多。
這裡是一些推薦的擴充功能:

我原本打算補充一下擴充功能的功能,但因為時間不夠而作罷,真是抱歉。
真的能改變很多,所以別猶豫,快去安裝擴充功能吧。

我也在進行手機編碼,但沒有擴充功能的話會非常困難。

綠牌前的感想等

這裡記錄我至今的感想等。

創造時間的必要性

這的確重要。創造時間真的非常重要。
對比Problems的heatmap與等級的變化,您會發現7月集中精進與11月之後增長巨大。
真切地感受到創造時間是相當重要的。

作為學生,優先考量學業使得常常無法創造出足夠的時間。
(實際上我在灰色的時期因為高中入學考幾乎無法精進過。)
幸好參加JOI等活動成為創造時間的契機,是非常有效的。

我在某些演算法上所遭遇的困難

我最困難的記憶主要是使用遞迴的全搜尋。
我實在對遞迴苦手。隨著撰寫的過程,這問題得到改善。
如果有同樣對遞迴感到困難的夥伴,強烈建議不斷練習這個問題。

此外,頂點倍加的掌握也花了不少時間。
只要掌握了頂點倍加的思維,DP和圖形演算法的能力也會明顯增強。
這需要毅力。

總體而言,我深切感受到,即使理解了典型,卻無法應用到實際的困難。
對於這個問題,多做練習會有幫助。透過解決NoviSteps的問題集或參加JOI來改善。
就我個人而言,從灰色到茶色的障礙更高。

對於思考應該花費時間的個人見解

我常聽說思考上要花費時間,但我個人認為「如果思考停頓三分鐘,可以查看答案」。

這可能是因為我學習數學的風格是「立即查看答案並記住問題」。

番外篇:現場比賽的感想

現場比賽!真的激勵人心!!!
今年夏天我參加了人生第一次的現場比賽(CodeQUEEN決賽),我獲得了極大的刺激!

我也寫了參賽記錄,希望您能讀一下!

最後

感謝您閱讀到這裡!!!
由於對寫文章不太熟悉,可能存在難以理解的部分。要是您讀到最後,我由衷感謝您。

如果有任何不明白的部分,請通過評論或者Twitter的私信告訴我,我會非常感激。

最近我真心熱愛競技程式設計,腦海裡總在思考各式各樣的問題。
到目前為止能對某件事物如此著迷,真的是我人生中的第一次。
能遇見這種興趣讓我感到如同夢境。

在競技圈中能繼續努力,無疑是因為周圍的FF們在我遇到困難時提供指導和幫助。真的非常感謝。

未來我會更加樂在其中,努力精進競技程式設計!

期待下一篇文章再見!


原文出處:https://qiita.com/Un_titled/items/1b11a2649fe5e32ff3a4


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝15   💬10   ❤️4
406
🥈
我愛JS
📝1   💬7   ❤️3
61
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付