c++

ABC260D - Draw Your Cards

考え方 回答例 考え方Pythonの苦手な順序付き集合. 順序付集合 - 競プロはじめましたあとはlower_boundを使ってやるだけ.回答例 #include <bits/stdc++.h> using namespace std; int main() { int N, K; cin >> N >> K; vector<int> P(N); vector<int> ANS(N + 1, -1); vector<int> UNDER</int></int></int></bits/stdc++.h>…

c++とPythonの対応

c++

Pythonの機能→c++でどう書く?を整理したい. 基本的なもの:C++で競プロ(メモ) - 競プロはじめました defaultdict defaultdict(int) defaultdict(list) 関連記事 defaultdictdefaultdict(int)std::mapを使えばよい. map - cpprefjp C++日本語リファレン…

ABC253C - Max - Min Query

Pythonが苦手なやつ(順序付集合 - 競プロはじめました). 解法1:順序付き集合(c++) 考え方 回答例(setとmap) 回答例(multiset) 解法2:heapq(Python) 考え方 回答例 解法1:順序付き集合(c++)考え方辞書で個数を管理して,順序付集合でmax, min…

ABC245E - Wrapping Chocolate

頭がこんがらがる... 考え方 回答例 勘違いしたこと 考え方2次元座標で考えるのが大事.チョコと箱を(縦, 横)でソートしておく.チョコの大きい順に見ていき,なるべくギリギリ入る箱を削除して(使って)いけば良い(使った箱しか候補から削除できない.…

典型90 - 001 - Yokan Party(★4)

考え方 回答例 (Python) 回答例 (C++) 考え方最小値を最大にする問題なので,二分探索ぽい.実際, 答え$x$を決め打ちすれば,$K+1$個に分割できるかどうかは$O(N)$でシミュレーションでき(※), ある値を堺に$K+1$分割できる / できなくなるが決まる とな…

ABC241E - Putting Candies

考え方 回答例 (Python) 回答例 (C++) 考え方$N+1$回以内にループに入る.そこで,次のようにすれば良い. $N+1$回を上限にループして ループに入るスタート地点startを(アメの合計個数として)検知する. そのときの周期periodを覚えておく 1周期で増える…

ABC242D - ABC Transform

【関連】 C - Large RPS Tournament 考え方 回答例 (Python) 回答例 (C++) 参考 考え方倍々に増えていく.逆に,再帰をすれば半分になっていく.$k \leq 10^{18} = 1000^{6} \sim 2^{60}$だから,60回再起すれば $S^{(t)}[0]$に行き着く($S^{(t)}[0]$は$t$…

(C++)ABC241D - Sequence Query

Pythonが苦手とする順序付き集合の問題なので,C++で解けるようにする(順序付集合 - 競プロはじめました). 考え方 回答例 考え方(C++) ABC217D - Cutting Woods - 競プロはじめましたと似ている.値に重複があるのが異なる.順序付き集合が使えれば,あと…

(C++) ABC217D - Cutting Woods

Python(ABC217D - Cutting Woods - 競プロはじめました)では非常に苦労したので,C++で解けるようなるためのメモ.Pythonに比べてメチャクチャ簡単に実装できる.【関連】順序付集合 - 競プロはじめました 考え方 回答例 考え方ソート状態を保ったままカッ…

順序付集合

Pythonで順序付き集合の処理をしようとして苦労することが多い.そこで,順序付集合はC++で解けるようにしておきたい.使うのは<set>.この中に,キーの重複を許さないsetと,キーの重複を許すmultisetがある.ソートを保ったまま,要素の挿入(insert)を対数時</set>…

C++で競プロ(メモ)

Pythonメインでやってきましたが,C++でもできるようになりたいと思い始めました. 主な理由は以下: 順序付集合など,Pythonが苦手とする処理がある(順序付集合 - 競プロはじめました) C++のコードが読めるようになると,参考にできる情報の幅が広がる(…