競プロ

競プロを始めて1年が経って思うところをまとめた

こんにちは、すぎやんです。 去年の4/14にAtCoderのコンテストに初めて参加してから1年が経ちました。ちょうどいい節目のような気がしたのでこれまでの競プロ生活を少し振り返ってみようと思います。 なぜ競プロをはじめたか 去年の4月に競プロのコンテスト…

AtCoder Beginner Contest 113

さっさと3完したけどDの解法が生えずに終了。 だいたい解法がDPの時はいつもこんな感じなので現状では良しとしよう。 A - Discount Fare X + Y/2をする。 B - Palace 一個ずつ比較していって平均との差が最も小さいindexおよびその差を記録しておく。 本番で…

C++でnCkやnPkを全列挙する関数

n!通りの順列を全列挙する関数はnext_permutationという備え付けの関数を使えばできたが、next_combinationなるものはどうやら存在しないようだった。 例えば「N個の要素からK個選んだ時の和」などを考えるとき、combinationのパターンを全列挙したくなる時…

AtCoder水色になりました

無事水色になることができた。 ぶっちゃけると水色ならもうちょっとすぐになれると思っていた...笑 水色を目前に控えた時にC問題にどハマりして死ぬみたいな展開を何回かやってしまったのでそれでしばらく停滞したんだと思う。 あと、AGC早解きは貴重なレー…

2次元いもすをしてみた

2次元平面で異なるN個の範囲を示す座標が与えられ、その重なりがもっとも多い部分を求めるような問題。普通の解法であれば二次元の配列を用意していN個それぞれについて指定された範囲の数値をインクリメントする事になる。しかし、二次元平面の縦と横の長…

Combinationの求め方まとめ

c++でnCkの計算でnの値に応じた2種類の導出方法をメモ。 nの値が50程度でlong long型に収まるとき このときはオーバーフローや時間制約を気にする必要はないが、階乗を愚直に計算することはできないので注意する。 nCk = n-1Ck-1 + n-1Ckというパスカルの三…

c++でpriority_queueを使ってみた

通常のqueueはbfsなどで使うことがあったが遂にpriority_queueを使う問題に遭遇したので使い方をメモしておく。 使ったのはこのD問題 beta.atcoder.jp これ、結構考察と実行ともに充実してていい問題だと思った。priority_queueの基本的な使い方はこんな感じ…

Tampermonkeyを用いたuser scriptの作成

最近AtCoderでuser scriptを用いた自分だけのページを作ろうみたいな流れがあるので試しに簡単なuser scriptを作成してみた。Chromeを使っているので今回はTampermonkeyというChromeのプラグインを用いる。https://tampermonkey.net/新規スクリプトを選択す…