競プロあれこれ
競技プログラミングメモ
このスクラップは,競プロで成長するための道筋として有益な情報をまとめるなどするために作成されました.
目標
3月下旬までに AtCoder 入水
得たい事
- 基本的なアルゴリズムを理解する
- 二分探索・DP など
- 問題に対する考察力を身につける
- 競プロをきっかけとして離散数学やその他数学に慣れ親しむ
- プログラミング言語に慣れ親しむ
- C++に慣れ親しむ
- Rustに入門する
- Pythonは封印
TODO
- 計算量オーダー
-
AtCoder Beginners Selection
- 簡単でもとりあえずやっとく
-
全探索
- これも軽く触れる
解いていると,先日たまたま触れる機会があった awk が使えるのではないかというときがあった.
正規表現と共に学ぶと使える日が来ると思う.
白昼夢とTraveringが鬼門でした。
白昼夢はTLEに悩まされ、Travering はいろいろ実装でガバりました。(No を NO で出力)
ところで、string 型あまり慣れてなくて、いろいろ調べながらやってましたが、白昼夢はそれが原因でTLE出してました。string型の扱い方になれることが一つの課題でしょうか。
p.s.
後で見てみれば、dp で早い実装できるのですね。再帰やstackを用いずともこんなにも簡潔だとは。
大体計算量についてのお話を読んだ.
大体理解している内容だったが,具体例を触れることができたり,不明瞭だった部分の理解が得られたりした.
派生
かなりペースが落ちましたが,とりあえず全探索終わりました.
C++ 難しい.
メモ :
- vector
- 順列全探索
- 全部再帰に頼ってたのでfor文利用とライブラリ?利用したのあった気がするのでそれについて後で調べる
TODO
とりあえず次に何をするのか迷ったのと,座学より実際に手を動かす時間を増やしたいので強制的に次.
典型的なアルゴリズムを一通り目を通します.
機能についてはありがたみがまだ理解できないと思ったので後回し.
全探索(勉強中)
まずは基本である全探索.
最初にやってるけどまあとりあえずこれも修行だと思って.
感覚がわからないこと
ループ数と時間の対応
どのくらいまで許容できるかの感覚がない.そこに関する知識をまとめる.
1 秒間に 10^8 ~ 10^9 回程度計算できるといわれています。
1秒間で10億が限界,というかアウトな可能性が十分あると.
大体1億を単純な目安にするといいのかもしれない.ただし,1億という数字はとても分かりにくいので10^8か100Mと覚えることにする.
これともう一つ,けんちょんさんのブログも参考になる.
ここにも共通の見解が書かれていました...読んだはずなのに忘れていますね.
ということでまた忘れたらここに来て復習ですね.