こんにちは!
抹茶大好き!まっちゃラテです!
ついに...やりました。本当の抹茶を、つかみ取りました🍵🍵🍵🍵🍵🍵
「これなんの記事?」
いや本題の内容を言う前に言わないでください!!!
今日は、私が入緑するまでの軌跡と、あの時全くTwitterを見ていなかったので分かち合えなかった、入茶までの軌跡を、ここにつづります。
というわけで、文がめちゃくちゃ長くなることを覚悟しといてください。
目次
~入茶までの足跡~ (前編)
- 1: 高校一年、競プロとの出会い
- 2: 初めてのAtCoder (過去のアカウント、晒します※)
- 3: 初めてのしっかりアルゴリズム履修
- 4: 初めての Atcoder Beginner Contest
- 5: 挫折と苦悩
- 6: 一刀両断と心機一転、悔しさのバネ
- 7: 積み重ねた努力のつぼみ
~Main: 入緑までの軌跡~ (後編)
- 8: 現実逃避
- 9: 手を差し伸べてくれた天使
- 10: 「簡単なものばっかりじゃ、つまらないでしょ?」
- 11: ただただ精進の日々
- 12: 受験で薄くなり行く知識たち
- 13: 桜咲くA,B埋め、灰梅の決心
- 14: 「本」という名の無双
- 15: 茶梅の出会いとその友情
- 16: 絶対にあきらめない心
ということで、書きます。ふぅー...よしっ!!!!🔥ぼっ
※これについて
横入りすみません。
私は AtCoder 様のサービス利用規約における、「複数アカウントの利用」に違反することを確認しておりませんでした。
今は既にこの過去のアカウントは消去(退会)はしましたので消えておりますが、それでも違反をした事実に変わりはありません。
以下の文は原文のまま残してあります。虚偽のことも、丸ごと文を変更することも、逃げに等しいと思ったためです。
そして利用規約を違反したことを知らないシーンも書かれています。ご了承ください。
以上を踏まえた上で、この記事をお読みいただけると幸いです。
今後、このようなことが起こらないように努めます。読もうとしている方々、しょっぱなからこのような雰囲気にしてしまって大変申し訳ございませんでした。
ちなみに、今のアカウント一筋で参加しようとしているので、過去のアカウントはここ 3 年間は私は既に使っていません。
もっというと、共有アカウントとして使っていたわけでは決してございません。アカウント間を行き来しながら精進をしたことも一度もしておりません(すいません、調べてみたら1回していました。これからしないから許してというレベルではないことは十分に承知しています。今後は気を付けます。)。
なので自分勝手ではありますが、処置は取らない...と、しています。万が一これに関する指摘があったならば、Twitter などでお知らせします。
:
:
:
長い話になってしまいました。では、お楽しみください。
~入茶の足跡~
1: 高校一年、競プロとの出会い
ついに始まりました。私の花咲く高校生活...!!!私もここで花が咲くのか...!?!?(青春、努力、勝利(?)...)
部活は、この時、実は野球部に入ろうとしていたのです。
...え、意外?実はこの頃はとあるスマホの野球ゲームにはまっていたのです。まぁつまりは、後先考えずに野球を楽しもー!!!!って思ってた奴でした。
本当にその一心で野球部の見学に行きましたが、その時の私は学校の構造がわかっておらず、どこで活動しているのかすらわからなかった人でした。
で野球部の人たちを見かけては、隠れて「かっこい~...!!✨✨✨✨」と言っている陰キャでした。
で、ふと新入生歓迎のポスターを見てみると、そこにPC部の勧誘ポスターを見つけたのです。そして、こう書かれていました。
「誰でも自由に活動できる!!なんでもできる!!!!!」(誇張は少しもない)
ほう。と最初は思いました。
とりあえず、見るだけ見てみようかな~と思って部室に入っていみると、あらびっくり!!!
マジで自由な空間じゃん!!!!!!
そう、何も打ち合わせせずにやったのかなー感が強い新入生歓迎をしていたのです。私は思わず、自由だな~ここ!!と思っちゃいました。
:
:
(待て待てこんなに書いてしまうととても40000字に収まらないのでは!?なので省略!!!!)
と、とりあえず、考えを変えた自分はなるべく自由性のある部活に入って活動したい!!!という思いで、無事、PC部に着弾した(=入部した)のです。
:
:
なんやかんやあり、時は高校一年の夏。PC部顧問から、こう言ってきたのです。
「プログラミングを、やってみないか?」
ほう。となりました。同じリアクションしかしてませんが。
早速先生の言う通りに、学び始めました。最初は、paiza様のサイトから学習を始めました。
:
:
これが、私を「競プロ」の世界に誘った原点になったのです。
:
:
...え?Atcoder はどうしたって?
まぁまぁそんな焦らずに!まだまだpaiza学習は続きます。
paizaでは、主に JavaScript を学んでいました。理由?そんなの私個人の興味+かっこよさに決まってるじゃないですか!!!!!!!!!
で、paizaさんにある「スキルチェック」というサービスを使って、マジで特訓しました。
でも、私も人です。(お気づきではいると思いますが、""抹茶🍵"" ではないですよ?)
はっきり言いましょう。
:
:
飽きました。
(本当に、JavaScript を好きでいる+今も使っている人は、ごめんなさいとしか言いようがありません)
:
いや、今の私なら絶対楽しいはずです。
そもそもこの頃の私は、確かに興味はありましたが、「これ、学んでどこに生かせるの?」と、思っていたのです。
ここで私は、プログラミングの存在性を、探ってみることになったのです。
:
:
探ってみました。マジでわかりませんでした。この頃の私には主にWebサイトの制御?などで使用されることを、全く知らなかったのです。
そんなこんなで、JavaScript で作りたいものを少し作って、ほったらかしにしてしまい、プログラミングはもうやることはなかったのです...
...の、はずでした。
ある日、PC部顧問曰くとある大学からこんなメッセージが書かれていたのです(サイト内)。
「会津大学主催、パソコン甲子園2020」
これに、参加してみない?ということを言い渡されました。私は、結構乗り気でした。
理由?だからそんなの興味+paizaで習ったことが生かせると思ったからに決まってるじゃないですか!!!!!!
ということで...ここで、「競技プログラミング、略して競プロ」の存在を、初めて知ることになったのです。
:
:
...あ!AtCoderの話に、やっとなるわ~よかったとか思いました!?
残念ですが、まだまだ続くのです。
:
:
こうして、私たちPC部プログラミング班の、激闘の日々が始まりました。
#
確か...この時のパソコン甲子園(以下、PCK)は、C++, Java のみが使えたんですよね...確か。
で、顧問は、「C/C++より Java の方がいいんじゃないかなー」と言ってきました。なので、とりあえず、じゃあ Java ってみるかぁ~ということで、paiza様の学習環境をお借りして、学んだのです。
でもね~、(急にため語) やっぱり基本を押さえるだけじゃダメですよ、そりゃあ。
ん?どういうことだって?
実は、この時の過去問を見てみたんですよね...確か、私は2017年度の過去問(各自でご参照ください...)をよく取り掛かっていた覚えがあります。
(今この問題を見てみると、「エル」という人に反応しちゃうな...(ヒント: FFさん))
では早速解いていきましょう。第一問。じゃじゃん!(SE)
:
感想: あ~四則演算かな?はいはい、Javaなら...こうして、こうじゃあ!!!-> AC
:
まあ余裕ですね。第二問!じゃじゃん!
:
感想: if文かな~?これをこうして...あれ?じゃあこれをこうして...お、合ってそう!-> WA
:
ちょっと手こずりました。この時の私は、こういう単純な問題がマジで苦手でした。悲しい...(ちなみに他のプログラミング班の人は秒で解いてた)
第三問。じゃじゃん!
:
感想: 無理では?()
:
そう、ここで無理になりました。剰余がどういうところで扱われるか、まだはっきりしていない頃だったのです。
ということで、一回過去問から離れ、paizaさんのスキルチェックというサービスを借りて、熱心に取り組んでいました。
よし、大体Dは解き終えた!ばっちり!
じゃあ、もう一回解いてみましょう。あらびっくり!またてこずりました!そして無理でした!よし、次の問題へGO!!!!!!!!
第四問。じゃじゃん!
:
感想: みゃ?
:
はい。単純なアルゴリズム問題です。今の私なら、あ~あれね!になっております、今。
この頃の私は、HashSet の用途も知らず、ArrayList もまともに使えず、Entry もなんのこっちゃわけわからんもうJavaやめるわ状態でいたのです。
もう無理そうだけど、もう一問だけ見よう。第五問。じゃじゃん!
:
感想: MU☆RI☆DE☆SU☆
はぁ...意味わからん。自信を失いました。こんなん、自分解けるようになんの!?!?!?って、正直思っていました。
第六問も見ましたが、以下同文。
さぁ...どうすりゃいいんだ。と思いました。
とりあえず、paizaのスキルチェック: D,Cレベルの問題、問題集も同様に解きまくりました。
PCK当日まであと2か月くらい。
paizaをカチカチサーフィンしていると、"アルゴリズム講座" というのを見つけました。これは間違いなくいい賜物だ...じゅるり、と思い、軽い気持ちで臨みました。
結果は...MURIDESU☆
マジで意味わからん。この一言しかなかったです。(この時、マジで意味の分からない再帰関数や、巡回セールスマン問題を見ていました)
私はここで思いました。
:
ちょっと待て。
これ、このままじゃ一生無理なのでは?
:
ということで、本当にいろいろなアルゴリズムを調べてみました。そして、ひとことつぶやきました。
:
:
「貪欲法...?」
:
:
これが初めてのアルゴリズム習得でした。じゃあ詳しく見てみましょう。
:
ふむふむ。
:
なるほど。
:
:
わからん。
:
:
いや、多分理解力がなさ過ぎて全く頭に入らないだけで、今見ると多分すんなり入ってくるとは思います。記事全体はマジでわかりやすかったです。
(記事...うろ覚えですが、確かこれだったはず...?)
(この記事の筆者様、本当にありがとうございます!!!!)
で、お気づきでしょうか。この記事に、Atcoderの問題が載っているのです。
ついに...?!?と思った方が多いでしょう。実はこの時、
:
:
「Atcoder?なんか、外国で開催されてる...のかな?へーこんなのあるんだー (問題をよく見てからサイトを閉じる)」
:
:
くらいの程度でした。まだこの時は AtCoder 様の偉大さに気づいていない愚か者といっても過言ではないです(仕方ないのかもしれませんが)。
しかも拡大率 100% の時。(今は 125% (私の誕生日!?(偶然)) にして見ています)
むずそ~くらいしか考えてませんでした。
でも、その問題がどうやっているか、解説を見てみたのです。おお~分かる、分かるぞ...!!!になりました(こうなったのはPCKまであと20日前くらいなのは言わなくてもわかりますね?)。
なんやかんやあって、なんかアルゴリズムを適当に見ながら、初めての競技プログラミングの場、パソコン甲子園、当日。
私は身に着けた、貪欲法を片手に持ちながら挑みました。
START!!!
第一問。これはこの時の私でも意外に解けました。
第二問。if文パーティーです。手こずりました...(隣にいた友だちはすんなり通してました。くやしい!!!)
第三問。...ん?どゆこと?無理。次の問題を見ました。
第四問。実験してみました。すると、
「待て、これ、貪欲法か?」
その瞬間舞い上がりました。そして落ち着いて実装をし、まずは入出力例の答えが合っていることに、心がぴょんぴょんしました。
そして、恐る恐る提出し、祈りました。すると、
:
:
「正解」(ACの意)
:
:
の文字を、目にしました。これは、ガチで嬉しかったです。
ちなみにこの時点で第三問をACしてましたが、第四問は流石に解けず、「すげぇ~」って言われてめっちゃくちゃうれしかった記憶が、今でも残っています。
これがあるから、楽しい。競技プログラミングのモチベにもつながりました。
逆にこれがなかったら、今の自分はプログラミングを既にやめていたんじゃないかな...と思っています。
#
PCKから1週間が経過しました。競技プログラミングはもちろん続けていました。
すると私の熱意が伝わってきたのか、顧問からこう言ってきたのです。
「"AtCoder" っていうサイト、知ってる?」
私は、覚えていたのにも関わらず、知らないといいました。いや、AtCoderのサイトはあれっきり見てなかったので、存在を忘れていた、の方が適切でしょうか。
で、見てみたのです。
「サイト、かっこよ!!!!」
と思いました。そんなすごいサイトなのか...?と思いました。まだこの時の私は偉大さを知りません。
早速、顧問が言ってきたAtCoderのサイトから、APG4b (AtCoder Programming Guide for beginners) を見てみました。しかし、それは C++ の入門記事だったのです。
Javaじゃないのかぁ。と思いましたが、顧問から後押しをするように、
「C++も、簡単だから使えると便利かもよ?」
なるほど。しかし、どこで使えるんだ...?と思った自分は即座に調べてみました。すると、
:
:
「競技プログラミングでは、C/C++,Java,Python を使う人が多い」
:
:
という文を目にしました。あれ、これって C++ をやってもいいか...?と思いました。
つまり?言わずもがな、C++履修を始めました。
:
:
私は、ようやくAtCoder の偉大さに気づき始めるのです。
2: 初めてのAtCoder (過去のアカウント、晒します)
ついに始まった AtCoder 人生。まずは APG4b をやりまくることを考えました。
で、初めてコードテストを使い、初めてAtCoderで提出したのです。
「1.00 はじめに」の章での提出です。記念すべき 1 回目の提出の結果は...!!!!!!
WAです!!!!!🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉
...ん~~~~、かわいいコード!!!!!!!!
しかも、Copy&Pasteを知らない私は自力で最初からコードを書いているっ...!!!!💕💕💕
Hello, World! って出力しろ!っていうのに hello world 、かわいすぎる!!!!!!!💖💖💖💖💖💖💖💖💖💖💖💖
:
:
んんっ、すみません、取り乱しました。
あ、あと気づきましたか?私、このアカウント一本でやっていたわけではないのです。なぜ 2 つに分かれているかは、後々わかってきます。
じゃあつべこべ言わずに、ここにさらしておきましょう。
これです!!!! NKmatcharate (※アカウントは退会済なのでページは残っていません)
灰色で止まっていますね。これも後々わかります。
という感じで、APG4b をどんどん進めていきました。
3: 初めてのしっかりアルゴリズム履修
幸いにも、二次元配列などは Java 学習でやっていたのですんなりわかりました。慣れるまではマジで長い年月をかけましたが...
あと、再帰関数!これもマジで最初は詰まりました...本当に、今やっと慣れたくらいですもの!!あれはむずすぎ!!!
(いろんな再帰関数のサイトを探しまわりました...最初からあの神様みたいな記事を見つけられればいいのに、むずいです...)
すいません、提出見てみたら何を血迷ったのか急にPythonを書き始めているのですが...(悪いことではないですけどねもちろん)
多分、paizaさんでPythonを履修して、やったんでしょうね...
って、思い出しました!!!この頃の自分はトリリンガルになろうと思ったくらい、言語を習得したんでした!!!
つまり?競技プログラミングそっちのけで基本を沢山習得していました!!!!
じゃあアルゴリズムはどこ行った?->その答えは、どっか行ったです。
貪欲法も、かすかに記憶に残っているだけで、マジで忘れていました。
:
:
お!はじめて過去問に取り組んだ問題がありました!
これです!!!-> ABC181-A
なるほど、こういうのを沢山解いて楽しさを覚えた、っていうのはありました...思い出しました!
あ、B問題もありました!これです!-> ABC181-B
初B問題提出、全(Sample含む)WA+TLE...なかなかですね。あれか、コードテストでもサンプルが合ってるかわからなかったのかな...?
ん、待ってください。初C提出が...🧪緑diff!?
この時の(今も)参考サイト: けんちょん様のサイト(EDPC)
参考にした問題: ABC040-C
そうでした。この頃の私は、動的計画法という、なんともかっちょいい名前のアルゴリズムを履修しようとしていたんでした(無謀にも)。
それで、簡単な問題からやろう♪と思い、最初からやりました。
そうか...「コードの完コピはあまりしちゃいかん!」ということを知らないので、まずはこのコードを完コピして、そこから自分の読解性を求めて変更しながら(俗にいう、リファクタリング的な?)、学習していました。まぁ何事にも自分に合ったように学ぶことは大事。
最終的に、自分好みの感じコードに味付けをして、自分のコードでACできたようです。
参考にした問題: ATC001-A
次は深さ優先探索を学んでいますね...
って待て待て!!!これ、平日だし授業中じゃない!?!?
(ここで思い出がよみがえる)
「そうか...この時自分は一番後ろの席だから、iPad(学校支給)を授業中にいじってもバレない...!(最悪)」
ん~...まぁ、いいのかな。勉強してるし。
ゲームとかSNSとかでもないからいっか!!(よくない)
グリッド上の探索ですね。この頃、探索問題はマジで好きでしたね...今もめちゃくちゃ好きですけど。
で、ここからグラフのことに好意を抱いていました。なんなら、リアルでも好きな人に好意を抱いていました。なんかすご!!!!!(?)
#
とまあ、まずはこんな感じか。
...待ってください。なんか重くなってるので、一回入茶の方の記事はこんな感じで締めます!!
:
後編へ続く。
:
:
に、しようと思いましたがめんどいのでこっから後編!!!!!
ここまでのStoryをまとめてみます。
あらすじ
高校生でパソコン甲子園に出場した。
そこではかなり厳しい知識量に対し、APG4b を解きまくった。
しかし、意味の分からないアルゴリズムに頭を奪われて...!?!?!?
では、どうぞ。9000字以上あるので、頑張ってください☆)
:
:
:
4: 初めての AtCoder Beginner Contest
ついにこの時が。
顧問から「毎週開催しているコンテストあるから、慣れたら出てみなよ!」と言われ、私はついに AtCoder Beginner Contest に出場する決心をしたのです。
コンテスト前の緊張感。周りのプログラミング班の人たちは個人個人のPCで家で解いてるので、何もわかりません。
で、肝心のTwitterですが、この頃の私はTwitterの存在を認識していなかったのでFFさんさえもいません。
つまり、今から初めて一人で挑むのです。PCKでは2人で解いていたのに、これは...!!となりました。
さぁ、始まりました。今回はこのコンテストに挑みました。->
ARC109
...ちょっと待ってください。A "R" C?ん?見間違いでしょうか...最近目を使いすぎているのでちょっと...(目をこする)
そうです。
初めてのAtCoder Contest、ARCで臨んだのです。( I'm True ばか. )
そりゃあね...むずすぎですよ。
待て待て全人類こんなむずすぎるやつ解いてるの!???!?と思いましたもん。
結果、いわずもがな 0 完太陽!🌞初コンテスト、パフォは54...妥当です。
「これはね...無理だ!!!!精進しよう!!!!」
とっさにそう思いました。
この結果を顧問に言ってみると、なんということでしょう!ARCじゃなくて、ABC に出た方がいい!!!なるほど!!!
ARCはむずい!!!なるほど!☆
(一応、提出してはいたんですよね...しっかり考えられてるの、すごいな...)
ということで、次の A"B"C までにとりあえず簡単な問題を解きまくり...ませんでした。過去問精進という言葉は、彼の頭には未だ存在しません。
:
つまり?ほぼノー勉で、今度こそ初めてのABC(ABC185)にとりかかりました。
結果は...まあ、残酷です。というか、問題の運が悪かったのはあります。
Aは全然解けたのですが、B...問題文がむずかったです...
しかも、 って式も出てきて、小数!?って思って手こずりましたね...
パフォは 91 。うんうん、初めてにしてはいいのかな...?レートは 3 -> 11 に上がりました。
(なんならレートあることもこのときわかってません。つまりパフォもレートも存在を知りませんでした)
5: 挫折と苦悩
しかし、この結果は私に火🔥を注ぎました。
ここから過去問精進が始まったのです。
沢山解きました。とりあえず考えられる簡単な灰色の問題を中毒ののように解きまくりました。
茶色、緑色のdiffにも構わず、解説ACでもいい。とりあえず基本知識を蓄積しまくりました。
そして、2回目のコンテスト、ABC187。参加しました。
結果は...これも残酷でした。
- A: 計算系。文字列でやった。
- B: 傾き...?どうやって計算するんだそんなの...
- C: 全探索かな~->時間計算量を知らず N2 で TLE
※Bに関して、この頃は高1なため、傾きの計算方法を知りませんでした
結果はA1完。パフォは 85 。前回より落ちましたが、レートは 20 になりました。
ここで私はCの解説を見て、set の存在意義を改めて認識したのです。
#
飽きるほど問題を解きまくる日々。実はこのときの精進は、マジで楽しかった記憶があります。
そして、今の私が大好きな探索アルゴリズムを、もう一つ知ることになるのです。
これも、とりあえず見様見真似。はっきり言いましょう。マジで意味が分かりませんでした。
でも、こんな面白いアルゴリズムあるんだ...!!(おめめきらきら~)と思いました。
この頃から、グラフ理論に思いを寄せ始めていました。
#
飽きたので(おい)、Pythonで過去問を解いていました。
もちろん過去問精進に夢中だったため、コンテストには全く出ていませんでした。
そして月日がたち...3回目のコンテスト。これは学校から参加しました。
よし、スタート!
- A: これ、ただの計算なはずなのに合わない...!!
- B: bitでxorを計算...なのになんでRE!?!?!?
- C: え...むずそうムリです
はい。なんと、友達が隣にいるのに、0完というなんとも恥さらしな結果になってしまいました。
パフォは17。最低値を更新し、レートは 19 に下がりました。
解説を見ました。
なんでこれができないんだろう...。もう一歩のところに、私は足を踏み出せなかったのです。
:
またまた精進です。
茶色が解けなすぎて、灰色をずっと解いていました。
そして、4回目のコンテスト。今回はZONe様主催のコンテストでした。
では、精進の知識片手に宇宙へGO!!!!!!!
- A: i,i+1,i+2,i+3で判定
- B: ...へ?
- D: ちょっと実装してみるか...->RE+CE->へ?
"ふぅ...もう飽きた!!B問題解かせてください!!!" コンテスト後、この調子でした。
結果はA1完。パフォは 100 。初3桁!Aの早解きが効きました。レートは 27 になりました。
しかし解説を見ると、相似関係を使った数学的問題だったのです。
そしてここでやっと解説Youtubeの存在を確認します。見に行きました。なんのこっちゃわかりません!!!!!!!!!!!(この頃は特に数学が苦手だった)
#
ここまで(というか5回目のコンテストまで)に精進などで身に着けたアルゴリズム・テクニック、データ構造を列挙しておきます。
- Data: set
- Algo: 全探索
- Algo: 深さ優先探索(DFS)、幅優先探索(BFS) + (連結成分数え、連結判定)
- Algo: 1次元の動的計画法(DP)
- Tech: 式変形して探索数を減らす
- Algo: 累積和
- Algo: 二分探索
#
5回目のコンテスト。では、行ってきます。
実はこのコンテスト、私をグラフに夢中にさせたコンテストでもあります。
後ほど説明します。まずは結果を。
- A: if文パーティー。10分使ったのは痛い!
- B: 10超えてたら10引いた値の総和!3分で解けた!こっちの方がEasy!!
- C: DFSが大好きな人でした。そして、m=0に注意しながら、解けました。
そう。ついに、初めての 3 完です。
これには思わず、ガッツポーズをしてしまいました。
しかも後々に難易度を見ると、茶diff!!!これも驚きました。茶色、自分解けるんだ...になりました。
パフォはなんと 675 !!!!レートも 66 になり(今考えたらしょっぱくない...?)、これは大歓喜でした。あの爽快さは、今でも忘れられません。
:
こっからはアルゴリズム精進に入りました。で、この頃はPC部の先輩からは「DP 兄貴」と呼ばれていました。つまり、DPを勉強しまくりました。
:
あ、余談ですが典型90が入ったのは、この時っぽい...?私はここからやり始めてますが、間違ってたらすみません。
月日がたち、6回目のコンテスト。
これは...そんな悪くなかった(悪いですけど)ですね。
- A: a*(b/100)
- B: sortしてi=P_iじゃなかったらNo、それ以外はYes
- C: 今見てみるとコードめちゃくちゃ複雑!!とりあえずif文パーティーですね...
パフォは 198 。レートも 79 になったし、まぁいっか...
しかし、Cが灰色とはこの時は思っていませんでした。なのでパフォは 500 くらい出ると思っていたので、悲しかったです。
で、推定水色の知識はある友だちが、いとも簡単に二分探索を覚えており、D問題をすんなり通していました。悔しかったです。
#
あ、ご飯呼ばれました!!
またあとで~
#
よし、再開します。
ここからはもうマジで精進ですね。履修したアルゴリズムは以下です。
- Algo: UnionFind
- Algo: 約数列挙
- Algo: 素数判定
はい。7回目のコンテストです。結果は...まあまあ最悪ですね☆
- A: ふにゃん
- B: n*(n+1)/2ですね...これTLEするんじゃね?で迷っていました
- C: わおー...わからん [tex:O(N2)] しか思いつかん!!!
パフォは 71 。レートは 77 に下がりました。う~ん...
続けて8回目のコンテストへ。結果は(以下同文)
- A: 計算ミスで1ペな...
- B: 1が最初に奇数番目に来るならT、偶数番目に来るならA
- C: ...ふえw?絶対TLEするんですけど...
パフォは 228 。まずまず。レートも 92 になりました。まぁまぁ...
:
マジ精進(以下同文)
履修したアルゴリズムは以下です。
:
9回目のコンテスト。結果は...おぉ~...でも...
パフォは 478 。レートも 122 になりました。
...
この時、3完するコンテストが少なすぎて、自信を失っていたのです。つまりは、モチベをなくしてしまっていたのです。
あと、このときPC部内では今にも豪雨になりそうな雰囲気が続いていて、PC部存続の危機も迫っていたのです。
その関係もあったのでしょう...
あの時の私は、ほぼ「悪」でしたから...
:
:
動的計画法、とりあえず学んでいました。
しかし、これは負の効果でした。DPが自力で解けず、もっと自信を無くしたのです。もっと絶望しました。もっと挫折しました。モチベなんかなくなりました。
:
:
10回目のコンテスト。
これは言うまでもないです。またC問題にやられたのです。レートも落ちました。
そして月日がたち、競プロから一時期離れていました。
「これ、競プロ、続くかなぁ...」
そう思っていると、私は思いついたのです。
:
「いっそ、このアカウントを消して、新しいアカウントを作り直すか...?」
:
そう。こうして、私はこのアカウントを抹消しようとしたのです。
でも、退会は...なんか気が引けるし、せめて名前が変えられればいいけど...1回しか決めれないのか...
よし、
新しい自分を、作り出そう。
追記: ※何度も言いますが、これは違反行為です。私はこのとき、これが違反行為に気づいていなかった愚か者でした。皆さんもご注意を。私も気を付けます。
:
:
:
:
こうして、今の matcharate12 が生まれたのです。
6: 一刀両断と心機一転、悔しさのバネ
心機一転、私は一から精進することにしました。もちろん過去問の解いた形跡も、AtcoderProblemを見ても何も残っていません。
このまっさらな状態から、私は入茶を目指すことを決心しました。
このタイミングで、推定水コーダーの友だちは、入茶をしました。しかも、私の解けない問題をすんなり解きながら。
これは、嬉しさの半面、悔しさもありました。いや、正直悔しさの方が大きかったかも。
:
それに加え、部内の雰囲気を改善させる必要もあります。私がとった行動は...
:
:
「何もしない」ことです。
:
:
私はこの時、「時」が解決させてくれる、と確信していました。なので、当時好きな人ともしばらく離れることにしたのです。
はっきり言って、これはまさに「決断」でした。しばらく話さなくなると、あっち(好きな人)の印象も悪くしてしまうと思っていたからです。
...悔しいです。しかし、これは自分が蒔いた種、いや、地雷です。
この経験のおかげで、私は深淵の中から目を覚ますことができたのです。
#
心機一転、新しい自分で、精進を始めました。
新しいアカウントで、初めてのコンテスト
このアカウントで、初めてのコンテストがやってきました。解きました。
- A: 素直に全探索
- B: pair+sortで頑張る
- C: おお...わからん。
初回はパフォ 348 で、レート 17 でした。ふむ、まあいい方?
:
さぁ、ここから私の本気の精進劇場が始まります。
そう、B全埋めです。
色を問いません。ABC only です。
B全梅しようとしたきっかけは、実装力をもっと上げようとしたことから始まります。
2回目のコンテスト
そして2回目のコンテストがやってきました。解きました。
- A: ぴょーん
- B: 全探索だけど範囲間違えて1ペな
- C: なんこれー!!!!!!!!!
パフォは 272 。レートは 48 になりました。まだまだ伸びしろの時です。
さらにB梅しました。
3回目のコンテスト
3回目のコンテスト。解きました。なんと、友だちに救われました...!!!
- A: かわいい問題!!!
- B: N以下で2をずっとかけていく
- C: 順列全列挙!!!!Foooooooo!!!!!
C、One More じゃない方を友達が解いていました。悔しい!!!
パフォは 663 !!レートも 114 と爆上がり!!!!(多分参加人数がめっちゃ増えてきた!?)
もっとB梅...ではなく、今度は簡単なA梅をやろうと思いました。Aをまずは解けないと、話にならん!!!と思ったためです。
4回目のコンテスト
4回目のコンテスト。解きました。なんと、友だちに救われました...!!!
- A: if文パーティで大変でした
- B: 同じかどうかは配列で確認
- C: 逆に操作をしていく!!これ気づけたのはでかい!!!!
C、One More じゃない方を友達が解いていました。悔しい!!!
パフォは 663 !!レートも 114 と爆上がり!!!!(多分参加人数がめっちゃ増えてきた!?)
もっとB梅...ではなく、今度は簡単なA梅をやろうと思いました。Aをまずは解けないと、話にならん!!!と思ったためです。
ちょっと尋常じゃないくらいコンテストが多いので、ダイジェストで行きます!!!
7: 積み重ねた努力のつぼみ
5~6回目まで
さらC梅も同時に始動させました。きつかったですが、解けたときのあの快感は今でも同じです!!!!!
レートは 265 まで上がりました。
7~12回目まで
JOIも参加しました。私にとっては結構簡単目で、初めて全完も経験しました!!!
履修したアルゴリズムは以下です。
A梅と、初心に帰ってAPG4bの練習問題梅をしていました。
そして 12 回目のコンテストで、新たに3点の結んで作る三角形の面積公式を覚えました。このとき、ベクトルはぎり習っていなかったです。(このときは高二でしたが)
レートは 335 まで上がっていました。結構順調では!?!?!?
13~17回目まで
本格的に、まずはA梅を始めました。ほぼAしか解いていないはずです。そして、A梅を見事踏破しました。
次にB梅を始めました。
履修したアルゴリズムは以下です。
何回目かのコンテストか忘れましたが、深さ優先探索の重要さを改めて意識できた問題にたどり着けた覚えがあります。
レートは...374!!!あと+26で...!!!!
(余談ですが、記事day2です。花粉が明らかにやばいことだけが明らかにわかります)
そして、18回目のコンテストへ
そうして精進を得て知識を蓄積しまくった私は、ついに、突然、その瞬間が来たのです。運命の、18回目のコンテストです。
:
- A: うにょーん
- B: アスキー文字を変えるけど...うまくできず2ペな。痛い!!!
- C: DFS+順列全列挙!!!!
- D: うおーBFS!!!!!
:
:
:
:
:
...これが、何を意味するか分かるでしょうか?初めての、4完を達成したということもありますが、
そう、私、まっちゃラテは、
:
:
:
入茶、しました。
:
:
:
あまりに急すぎたのであまり喜びが難しかったのですが、確実に、茶色に、なっています。レートの数字も、名前も。
そうして、Twitterもまともにやっていなかった自分は、PC部員のみんなと、喜びを噛みしめあいました。
あの時は、私もすごくうれしかった思い出を、今もずっと残っています。
:
入茶までに身に着けたこと・総括
...ということで、こっからは"ドラマチックラテ"から、普通のラテになりますね!
いや~...振り返ってみると、やっぱ「時」って早くない!?そしてなんか儚い!?!?
改めてみると、本当にいろんなことを学び、部員と仲良くふれあい、時には挫折し、時には幸福を感じ...まさに、「人生」そのものを表している感じです。
私も、プロフィール(LINE)では、「人生、山あり谷あり。うまくいかないことも、もちろんある。」って書いていたころもありましたが...マジでその通りになりましたね。
:
ということで、以下は私の入茶までにやったことリストです。ご参考にどうぞ。
- 深さ優先探索(DFS)、幅優先探索(BFS)、グラフ理論の基礎的知識
- 二分探索 (特にめぐるちゃん式)
- 累積和
- しゃくとり法
- bit全探索
- 順列全列挙
- 約数列挙、素因数分解、素数判定 (約数の個数、約数の総和などの数学的知識含む)
- 最大公約数 (ユークリッド互除法)、最小公倍数の計算
- 基本的なデータ構造 (特に set, stack, queue, deque, priority_queue)
- 基本的な典型DP (特にナップザック問題、1次元の問題)
- 進数変換 (10進数 to K進数, その逆も)
- ランレングス圧縮
- 二部グラフ(※これは優先度低)
入茶までにやったこと(教訓)
- A,B全埋め (A: 早解きの力をつけるため、B: 実装力を身に着けるため)
- 灰梅、茶梅 (梅は全埋めの意)
- とりあえず1日1個確実にACする(解説ACでもok、ただししっかり理解することが大切)
- 思うようにいかなくても、とりあえず続けることが大切
- 時には自分を振り返る!苦手を克服!!!
:
Epilogue
ということで、私の笑いあり涙ありの、灰溜まりからの脱出劇場でした。いかがだったでしょうか?
茶色になるための努力方法は人それぞれ自分のあったやり方でいいですが、oo全梅は、マジで効きます。嘘だと思ったら、ぜひやってみてください。
...でも、問題をやっただけで決して満足しないでくださいよ?満足するなら、問題解説を完全に理解したわ余裕(ドヤっ)くらいになってからにしてください。
(急に先生みたいな言い方がでうざって思う人もいるかもしれませんが、これだけはガチで言えます)
:
よし、やっとMainの入緑記事を書きます。
ぜひ、期待しないで待っていてください。