らんこむの数学部屋

数学とプログラミングの勉強をしていきます

ライブラリを自作して良かったところ

こんにちは、前回の投稿からだいぶ日が空いてしまいました。

 

続けて競プロ典型90問は解いているのですが、1つずつ記事に起こしても

あまり中身のない記事になってしまいそうだったのでやめていました。

ただ、解いているうちに面白いと感じたこともあったので

そのうちまとめて上げたいですね。

 

さて、昨日はABC289でした。

atcoder.jp

 

1WA5ACでパフォーマンスは1452となかなか好調、

1WAの内容が改行入れ忘れというミスだったので悔しいところです。

 

典型問題を解いていて「これ別の問題でも使うよな」といった部分をまとめていました。BFSだったり、dijkstra法、mod計算等です。

今回はそれらが非常に役立った。というお話です。

 

当然、この有名どころなプログラム達はググれば沢山出てきますし、

コピペですぐに使えるプログラムも転がっています。

ただ、自分で書いたプログラムというのはやはり自分にとって使いやすいもので、

変数の命名方法、コメントの入れ方、プログラムの書き方などが

自分の癖にあっているので、少し個々の問題用に手を加える。といったことが非常にやりやすかったです。

 

今回、私はD問題をdijkstra法で、E問題をBFSで解いたのですが、

D問題であれば、辺をあらかじめ指定するのではなく、都度構成するのに手を加え、

E問題であれば、到達済みの点を高橋君と青木君の組み合わせで保持するのに手を加えました。

 

恐らく、他の人の書いたプログラムであればソースコードを読むのに数分かかり、

その後に改修することになるのですが、自分の書いたプログラムであればソースコードを読むのに時間はかかりませんでした。ほとんど最初から改修に取り掛かり、スムーズに問題に取り組むことができました。

 

ただ、他人の書いたプログラムを読む能力を身に着けることも重要ですし、

自分で書いたものよりも、他人が書いたものの方が高速に動作する。ということも

よくある話なので、インプットを忘れずにやっていきたいところです。