プログラミング

Dから上のAC獲得のために超えるべき壁がある。その名はTLE

 

TLE

 Time Limit Exceeded 。要するにタイムオーバー。自分の数少ない手持ちのアルゴリズムパターンだけだと、2秒の制限時間でアウトになる。色々しらべていくと、難易度A,B,Cくらいまでは、単純全探索でもいけるけど、それ以上の難易度の問題は、高速化演算アルゴリズムで実装しないとクリアできないように問題設計されてるようだ。

壁を超える方法

 己の手数のレパートリーを増やす。AtCorderに限らず、競技プログラムの世界では、鉄板となるいくつかの手法をまず知ってなければいけない。

動的計画法

 DPが必要だということがわかった。数式がたくさん出てきて眠くなるやつだ。いい機会だからリベンジしてみる。

「動的計画法(dynamic programming)」という言葉は1940年代リチャード・E・ベルマンが最初に使いはじめ、1953年に現在の定義となった[1]
効率のよいアルゴリズムの設計技法として知られる代表的な構造の一つである。対象となる問題を帰納的に解く場合にくり返し出現する小さな問題例について、解を表に記録し表を埋めていく形で計算をすすめ、冗長な計算をはぶくアルゴリズムのことをいう。特定のアルゴリズムを指すのではなく、上記のような手法を使うアルゴリズムの総称である

出典: フリー百科事典『ウィキペディア(Wikipedia)』

 

偉人達の道案内

 Lillianさんのnoteに残されていた足跡から、NTTデータ数理システムでリサーチャーをしている大槻さんというプロの方が、AtCorderのガイドを残してくれている。上級編までいくと、知らない数学の単語いっぱい。こんな世界があったんだ。世の中の天才達は、私のような凡才のために、道案内をたくさん残してくれている。本当に感謝!あとは、遊びの誘惑に負けずにコツコツと継続できるかどうかだ。

入門編:

(link: https://qiita.com/drken/items/fd4e5e3630d0f5859067) qiita.com/drken/items/fd…

初級編:

(link: https://qiita.com/drken/items/e77685614f3c6bf86f44) qiita.com/drken/items/e7…

中級編:

(link: https://qiita.com/drken/items/2f56925972c1d34e05d8) qiita.com/drken/items/2f…

上級編:

(link: https://qiita.com/drken/items/9b311d553aa434bb26e4) qiita.com/drken/items/9b…

蟻本

 学習対象の全容を俯瞰するために、オススメの書籍を購入した。内容は難しいらしい。

6 年前に秋葉さん・岩田さん・北川さんによって執筆されて以来、誰もが手にするバイブルとなりました。現在では競技プログラミング用参考書という域を超えて、世界的なアルゴリズムの教科書の 1 つと言える立ち位置までになっています。

大槻さんQuiita記事より

学べること

 高速化技術とは演算量削減技術。クラウドで何気に実装しているアプリソフトの演算速度観点の最適アルゴリズム実装にも活かせます。演算量削減手法をきちんと使いこなせるようになれば、インスタンスリソースミニマムの基盤実装にも繋がり、クラウド運用費低減もできます。プログラミングコンテストでスキルを磨いてみるのも楽しいと思います。そして腕を磨いたら、転職を検討して収益UPを狙ってみましょう。

面接対策としてお勧め
成功思考
独立不覊を目指すのに最強の方法が転職
収益は長期複利効果で増やす
プログラミング
最新情報をチェックしよう!