c++

(初心者向け)グラフの実装について

タイトルの通り初心者向けです。よかったらゆっくり見ていってください。 さて、競技プログラミングの過去問を解いていると最短経路の問題など、頂点と辺に関する問題が現れます。 町Aと町Bを連結している道路dみたいな感じです。このようなグラフの問題は既…

std::mapについてシンプルに

今回はstd::mapについて。 使いどころがよくわからなくなるmapですが、どうやらキーと値が違う場面だと書きやすいようです。 そしてたまに見かけるアロー演算子はこうやって使うみたいです。 例題 N個の文字列が与えられる。そのN個の文字列を辞書順で早い順…

lower_boundとupper_bound

今日も今日とて簡単な例を挙げていく。 意外に違いが少ないことがわかった。 int main() { int a[100] = { 1,3,4,5,10,14 }; cout << *lower_bound(a, a + 6, 6) << endl; //10 cout << *upper_bound(a, a + 6, 6) << endl; //10 } lower_boundはN以上となる…

std::setについてシンプルに

まずは何はともあれ基礎から。std::setは値を挿入すると共にソートされる機能を持っている。 データ構造は赤黒木。探索、挿入、削除ともにO(log n)。 ランダムアクセスを行うことはできないので参照したい場合はインクリメントなどを用いる必要がある。 #inc…