ラッキー空間空間

AtCoderブログ

あけましておめでとうございます!新年の抱負

新年になりましたね。はい。

 

2019年の総括

2019年は色々ありました。競技プログラミングを始めたのが2019年なのでそれが一番大きい出来事だったと思います。あとはスイーツ巡りとかをしてました。他にも1年間色々なことを通じて嬉しかったのは(これは僕が世界についておおよそ知っているという自信過剰さを感じて反省した部分でもありますが)この歳になっても新しい発見や経験があって日々喜びを感じれたことと、就職した後の生活についても希望が持てるようになって楽しみになってきたことです。

 

2020年の目標

院試に合格する

当たり前ですね。僕はツイッターのbioにも書いてある通りで応用化学科なのですが大学院は応化か情報系かで迷ってます。

まず民間企業に就職するとしたら化学系だとずっと同じ企業で一生働く、IT系だと転職を何度かする、というイメージがあるので個人的には後者の生き方のほうが合っているのかなぁという大まかな考えがあるのが大きいです。ただ、競技プログラミングをやっていく中で将来の職業としてプログラミング職も視野に入ったものの実務と競技プログラミングは違うというのはよく言われていることですし、そもそもプログラミングを一生飽きずにやれるかはわからないという怖さもあります。化学系は飽きたりハマったりを繰り返しながら高校生の頃からずっと続いているのでなんだかんだどうにかなると思います。進学先の問題は就職先だけでなく院試や院での研究の難易度にも関わってくるのが難しいところですね(実のところ院試については情報学環の院と工学部の院は両方受けられる(?)ので問題なさそうですが)。

結局のところまだ院にしろ就職にしろ漠然としたイメージしか持っていないのでこれから自分で調べて実態を知りたいのですが現時点では応用化学科の院にそのまま進む予定でいます。研究面では情報系よりも化学系の方が興味ある、化学系に就職するパスを潰したくない、というのと大学院に入ってから未知の研究をしつつ就職活動をするのは流石にハードだなという考えがあるのが主な理由です。まあ僕の人生について一番考えているのは僕なので僕が選んだ道が正しいです。

C++について勉強する

下に書くマラソンコンテストに出る、実務を経験する、の前準備としてC++について勉強したいです。今の状況としては競技プログラミングをする際にC++を勉強したので自分のC++スキルは競技プログラミングに特化していて実はコンパイルしたことが片手で数えられるくらいしかなく、コンパイルするのにも一々ググらないとやっていけない状況なので競プロでは使わないけど重要な知識を蓄えていきたいですね。

ラソンコンテストに出る

実務とのギャップを知るためにいきなり実務、というのも悪くはないと思うのですがまずは普段のように数十分で書けるコードではなく、もっと大きくて複雑なコードを書いてそれを少しずつ改良していく、というスタイルに慣れて実務をするための基礎体力をつけたいです。貼るだけで動く魔法の焼きなまし法ライブラリ欲しい。

実務を経験する

実務大事。あわよくばお金とコネ欲しい。

Kaggleをやる

12月の上旬ごろにちょっと齧りましたが結局開催中のコンペで結果は残せなかったので来年はとりあえず開催中のコンペに参加したいです。チームを組むと他の人のアイデアを知れて刺激になりそうなのでゆくゆくはチームを組みたいですが(現時点で僕は機械学習をそこまで理解していないので)レベル差がありすぎてお互い勉強にならないと思うので少なくとも3ヶ月くらいはソロでやるつもりです。

勉強法としてはこどふぉに参加した時に既に知っている事柄をベースにした話題であれば英語で書かれていても意外と読める!という体験をしたのでまずはKaggleの書籍とかを読んで日本語である程度勉強してからKernelを読み込んでいきたいと思っています。すでにKaggleやってる方でおすすめの勉強法があれば教えてください。

競技プログラミングで実績を出す

競プロメインのブログなのにこれがこんなに下になるのはどうなのだろうというのはありますがポジティブに考えるとこれだけやりたいことの多い充実した1年になりそうだな、という風にも考えられますよね。今年は間違いなく今までで一番忙しい1年になりそうです。

競プロでの実績として目指しているのはまず6月までにレート1800以上になる、12月までに黄色になる、というのがあります。かなり強気ですがこれくらいのペースで伸びないと大会で実績を出す前に社会人になってしまうので。次に(今月のDDCC以外で)大会の決勝戦に出たいというのがあります。DDCCに出れたのは新卒枠だったからなので新卒枠ではなくなる来年に大会の決勝戦に行くことは目標にする価値があると思っています。

競技プログラミング以外で新しい挑戦をする

去年始めた競技プログラミングももちろん自分の中ではチャレンジングなことでしたが、結局は受験勉強の際に確立した勉強スタイルと小学校〜高校で読んだ数の悪魔や数学ガールなどの数学書とはいかないまでも学校の数学よりも高度な書籍で読んだ知識や思考回路の焼きましに過ぎなかったので今度は完全に未開拓な領域をやってみたいです。欲を言えば今まで競技プログラミングを始め他の趣味も、影響を受けた人やかなりお世話になった人はいますが独学中心でやってきたので人に教えられないとほぼ不可能なものをやってみたいです。

交友関係を広げる

今のところ、知り合いがサークル、学科、競プロ界隈ばかりなので新しくコミュニティに入って知り合いを増やしたいです。ただ、前述した通り今年はかなり忙しくなりそうで有難いことに充実した毎日を送らせていただいているので卍女絡みはいらない卍。色々な挑戦をしながらも彼女作って頻繁にあっている知り合い結構いますが僕にはそんなキャパシティがないのでかなり尊敬しています。

社会人になっても楽しめる趣味を探す

2個上ともだいぶ被りますが。旅行とスイーツ巡りが好きで社会人になっても続けそうなのでそれでいいのですが他にもなんかあった方が楽しいはずです。社会人になると休みが少なくなって、僕の性格上その少ない休みはおそらく新しいことを始めるためではなく、好きなことに割くことになりそうなので今のうちに新しい趣味を探しておきたいです。

焦り過ぎない

急に抽象的な事柄になりましたが1個上と内容は似ていて、よく同年代で「学生時代にしかできないことをしよう」と言ってる人を見かけますが本当に好きなことであれば学生でも社会人でも関係なくできると思っているので(年越し大回りとか限界みが深いことは除き)、生き急ぎたくはないかな、という風に思っています。外に出るのも大事ですが家でゴロゴロしている時間も大事です。なぜなら家は最高のラッキー空間だから。

1日1回感謝のがんばるぞい #27~#38

書き溜めようと思ってたら書き溜めすぎました。

 

12/22

AtCoder Beginners Contest 148

反省:ABC初の全完、というか任意のコンテスト(バチャ含む)で初めての全完をほろ酔い状態で達成してしまった。E問題のさんすうができなかった。

 

今週は7がんばるぞいでした。

 

12/23

AtCoder Regular Contest 088

反省:D後回しにしてE解いたけど結局Dの方が先できた。Eは800点なので通せたの神だけどめちゃくちゃ細かいところでミスってて泣いた。

 

12/24

Codeforces Round #610 (Div.2)

反省:AtCoderならまだ仕方ないが大事な予定の前日にこどふぉをしない(遅刻しかけた)。D問題でなぜか空文字列を出力するなと怒られが発生した。

 

12/26

AtCoder Grand Contest 020

反省:解いたことのあるB問題でWA吐きまくった。あと今日初めてbitset使って便利やな〜ってなった。やっぱり緑コーダーかな?

 

12/27

第一回日本最強プログラマー学生選手権決勝

反省:A,Bまでしか解けなかったしAは解法知ってればできるみたいなところあるので実質1完。C誤読していた上にわからなかった。

Educational Codeforces Round 79 (Div.2)

反省:D問題解けた僕天才じゃね?と思ってたらみんな解けてて泣いた。あとテストケース50で謎のWAが出たのでn=1とかにしてコーナーケース探したけど結局わからず、mod取る場所増やしたら(もちろん取るべきところは取ってるつもりだった)通ったので謎。僕は分母ごとにmapで足し合わせていってkeyを分母、valueを分子と考えたものを足し合わせて行ったんですけどみなさんどうだったんですかね?

 

12/28

AtCoder Regular Contest 096

反省:凡ミスでD問題1WA出した。あとC問題めんどくさかったので全列挙したがまだ茶色コーダーだった頃の自分は定数時間で書いてた。今の僕は茶色以下です。

AtCoder Grand Contest 041

反省:A問題でなんか嫌な予感してテストケース自分で作ったらコードの穴を見つけられたのはかなり神だった。B問題なぜか最後のテストケース(59/60までは黒文字なのに60/60になった瞬間黄色になったからマジで最後に置いてあるんだと思う)だけWA生えて1時間以上考えたけど無理だった。WA5個以上付くと無敵スター取ったマリオみたいになんか何WAしても関係ない気がしてバンバン投げちゃうの反省してます。

 

12/29

AtCoder Beginner Contest 149

反省:E問題解けなかったのunratedで助かった。これ二分探索か〜解きたかった。

Goodby 2019

反省:DE解けたのは神。パフォも2400近く出た。

 

今週は9がんばるぞいでした。週7がんばるぞいとは何だったのか?

 

12/31

AtCoder Regular Contest 061

反省:解説見たのだいぶ前だったがD問題割とすぐに解法思いついた。EはDifficulty橙なので解けなくてもしゃーないかな。

こどふぉ紫色になるまでにやったこと(2)

luckyspace.hatenablog.com

 前回こどふぉ紫色になってからほぼ1ヶ月が経ちました。前回なった時はそんなに長続きしない予感はしていたのですが3日も経たずに青落ちして復帰に1ヶ月もかかるとは思ってもいませんでした。

 

 前回は精進はしなくてもレート上がってると言ってましたがそんなことありませんでした。今回のGoodby 2019はいろんな角度から粘り強く考察する必要のある問題が多かったと思うのでバチャコンやりまくって長考に慣れたのが効いたと思います。あとツイッターではちょろっと言った気がするんですけど最近コーナーケース踏んだ時の勘がめちゃくちゃ鋭くなってきた気がしていて実際、今日もそれが良い方向に働きました。がんばるぞい最高!(個人の感想です)

1日1回感謝のがんばるぞいを3週間続けて感じたこと

ラッキー空間です。

1日1回感謝のがんばるぞいを3週間しました。そもそも1日1回感謝のがんばるぞいとは?という方はこの記事を参照してください。

luckyspace.hatenablog.com

今この記事を探すために自分のブログを漁っていたら1日1回感謝の〜ばっかりで見づらかったのでこれからは4~6がんばるぞいで1記事くらいにしようと思います。

 

何がんばるぞいした?

始めてから21日で27がんばるぞいしました。全然1日1回じゃないですね。まあ目標は超えているのでいいと思います。

 

1がんばるぞい何分くらい?

一番短かったのは1時間くらいですが大体90~120分くらいはやっているので平均すると100分前後だと思われます。完全に詰まったと思っても出来る限り粘るように努力しています。

 

がんばるぞいのメリットと感じたもの

普通の精進だとめんどくさくて後回しにしそうな問題が解けるようになった。

問題をじっくり考えることができた。

どの問題は解けるべきでどの問題は解けなくてもいいのかよりわかるようになった(特にこどふぉ )。

自分の現状のパフォがわかりやすくなった。

 

がんばるぞいのデメリットと感じたもの

問題演習の回転率が悪くなった(以前は10分考えてわからなかったら解法を見て後回しにしていたので)。

自分の実力相応の問題を多く解くということが難しい。

過去に解けなかった問題の復習がおろそかになっている。

 

がんばるぞいの成果は?

パフォーマンスの伸び(というよりは受験勉強とか努力全般において)は1~3ヶ月くらい遅れてやってくる感覚があるのでまだわからないです。

 

がんばるぞいは続ける?

続けますがなるべく多くがんばるぞいをする!というモチベだと先ほど挙げたデメリットが大きくなってしまうのでこれからは上限も下限も週7回というようにしていこうと思います(短期間にやりすぎないというのが長続きさせるうえで大事だと思っているというのもあります)。

1日1回感謝のがんばるぞい #25~#26

12/21

AtCoder Grand Contest 026

反省:解説読んだことある割には時間がかかった。

Codeforces Round #609(Div. 2)

反省:解法決めうちに失敗した。十分時間あったら難易度高い問題でも決め打ちせずに色々な方法試すべきだと思った。Cまではかなり早くて1個抜けDまでのうちかなりの人数に勝ててるので結果はまあまあ良かったと言えそう。

 

 あと1回で今週のがんばるぞいが7ポイント貯まるはず(自分でも把握しきれていない)ですが忘年会から帰ってきた明日の自分に期待して今日はここまでにしときます。

1日1回感謝のがんばるぞい #22~#24

12/18

Educational Codeforces Round 68 (Div. 2)

反省:D問題は解説読んだことあったので爆速で出せたがそれでも順位そんなに良くなくて力不足を感じた。B問題でscanfの改行読み飛ばしを忘れた(というより知らなかったに近い)ので時間取られた。でもcin>>使ったらどうせTLEなんだろ、と思って解答を提出し直そうと思って見直したら間違ってcin>>使ったのそのまま提出していた。結局scanfの改行読み飛ばししようとしたらなぜか各行最後の文字消えるしわからん。

AtCoder Grand Contest 031

反省:B問題は解説読んだことあったが解けなかった。C以降は難しすぎる。

 

12/19

Educational Codeforces Round 78 (Div. 2)

反省:D問題TLE解から抜け出せなかった。ただ、TLE以外にも問題あったみたいです。お疲れ様でした。最後にヤバいパフォ出してからこどふぉでは2000パフォ超えないことがほとんどになってきたのよくない...。

1日1回感謝のがんばるぞい #19~#21

12/15

Codeforces Round #607(Div.2)

反省:な に こ れ 笑。文字列を辞書順最小にするところで辞書順最小の文字の中で最後に出るやつを貪欲に一番前とスワップ、できなければそのままにしていたけどabcedとかがコーナーケース。許さん。C問題はWA4個TLE1個MLE1個。楽しい(怒)。

Codeforces Round #608(Div.2)

反省:上のやつがヤバすぎて正直そんなに憶えてない。DとEどっちも難しかった。

 

12/17

Codeforces Global Round 6

反省:3WAうち1つはテストケース1ですが・・・。Cコーナーケース踏んじゃったのはやむなしとしてもサイコロは全面足して21!n個のサイコロの1が隠れててn-1個のサイコロの2が隠れてるのが最大!逆が最小!とかヤバいこと言ってた。D問題元のグラフ関係ないは草。◯す。