C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

2017年 進捗大反省会

昨年同様、今年1年の振り返り記事を残します。
独り反省会なので反省をポジティブにしていきます。

C++ について

C++を勉強しだして2年が経ちました。
まだまだ知識が浅く、基礎的な事も解らなかったり、知識が定着していなかったりするので、
C++ をもう一度軽くやり直したりしていました。
全体としては、今年は言語自体の勉強はあまり深くしなかったです。

学習方法として変わってきた事としては、学習 1 年目の頃は誰かが噛み砕いて書いているような Blog とかを好んで見ていたのですが、最近では解らない事があると C++ referenceC++ ポケットリファレンス(本)を良く見るようになりました。
少しは C++ に慣れてきた...(?)

競プロについて

アルゴリズム

今年はアルゴリズムの勉強を主にしていました。
初めはTLE本で問題を解きながら進めていたのですが、いつの間にか離脱...。
本に沿って勉強していると、解らないまま進んでしまえるので良くない気がして、途中から本で勉強を進めるのはやめました。*1
TLE本, 蟻本やチーター本は自分には難しく、全然勉強が進まなくなりました。

f:id:chiwawa_star:20171228223121p:plain

それからは、アルゴリズム理論の本を読んだり、自分に最適化された(易しい)資料を読む事で少しずつまた勉強を進める事ができました。
↑画像の本2冊は知識が何もない自分にも解りやすかった2冊で、学習の助けとなりました。
何事も一つひとつ自分の中で納得しないと進めない面倒なタイプなので*2、実装前に「動的計画法とは」みたいな勉強から始める方が自分には合っている気がしました。

本に沿って勉強するのをやめたので、主に yukicoder の問題を使って学習していました。
(同じ問題を何度も何度も解き直しをしていたので、yukicoder管理人のyukiさんには不審に思われていたかも知れない...。)

DFSも書けるようになってきたので、最近はずーーっとDP(knapsack, 数え上げ)の勉強を主にしています。

AC数

今年は考察ばかりに時間を割いていたので、AC数は少なく終わりました。
主に解いていた AtCoder と yukicoder 合わせて 140 くらいでしょうか...。
でも来年はもっと少ない予感しかない。

コンテスト

今年はコンテストもあまり参加しなくなってしまった。
理由は色々あったのですが、解決済みなので来年はもう少し参加したいですね。
あと運良く ABC で初めて全完出来たんですよ。


しかしこれは罠でこの後プロからこのケースで D 落ちますみたいな指摘を受け凹む(現実は厳しい)(でもそういう指摘はうれしい)
来年も地道に ABC 頑張りたいな(希望)

LaTeXについて

今年は LaTeX と出会いました。
始まりは Blog の数式部分が読みづらいよというご指摘を頂いたことでした。
指摘されるまで全然意識していなかったのですが、確かに他の人の Blog を見るとちゃんと数式部分は LaTeX で書かれていました。
別に強く勧められた訳ではなく、なんとなく MacTeX を DL して使ってみたら凄く直感的で感動しました。マークアップで文書作成出来るって凄い...!楽しい!!みたいな感想しかなかった。
自分は Adobe 生まれ Adobe 育ちなので、これまで文書作成は Illustrator だったのですが(レポート類も)、こんなに便利なものが世の中にあるのか...みたいな衝撃でした。
LaTeX は最高。


2018年の課題

2018年はもうこれしかないと思っていて、逆に他の事する時間もなさそう。
全振りしてしまっていいかは謎ですが...。
アルゴリズムの勉強法はまだ自分の中でしっくり来ていなくて、どう勉強を進めたら良いのかも模索中なのですが、自分の場合、習得を急いでいる訳ではないので楽しく勉強したいなと思っています。

とにかく動的計画法をマスターしないと!
本を良く読み理解して勉強する!解らない事は解るまで調べる!

  • 考察する

DP の問題もそうなんですが、典型的な問題が解けてもちょっと応用っぽくなると解けなかったりするので、深く考察するようにしたいです。

  • Effective に C++ を書く

C++ もまだまだ初心者以下なのでちゃんと勉強する。(Effective C++ と Effective STL を買った)
効率的なコードを書けるようになりたいです。

  • 解いた問題の記事を書く

復習という意味で、簡単な問題でも出来ればしっかり書きたいです。
今年は結構書いたんですが、殆どが下書き状態で終わったので...。
Blog を書きながら考察してたりして、実装に入ってしまうと放置になってしまうの良くないので最後まで書きたいですね。
記事を書くと「計算量違うよ!」とか「もっと良い方法あるよ!」等、わりとお声がけいただけるので、本当に有り難いです。(お気付きの点があればください!)


まとめ

1年間何してたんだろう...(成長なし)
来年は DP を頑張る!それだけ!


余談

実は夏頃に転職しました。
少しだけキャリアチェンジもしました。(チェンジと言う程でもないけれど)
新しい職場の開発環境(git)にもやっと慣れて...もいないのですが、炎上案件に放り込まれ、毎日楽しいです(真顔)

*1: 1つの単元が理解できて解けるようになったらまた本で学習を進めます。

*2:そのわりには適当です。