A. Mind Control
B. Irreducible Anagrams
同じ文字を固めた文字列を作ることを考えると,「種類数
非自明なのは,種類数
列
C. Prefix Enlightenment
集合を頂点とするグラフを考えます.ちょうど
頂点に操作対象とするか否かで
- 頂点に
または を割り当てよ.特殊な頂点は を割り当てなければならない. - 辺で結ばれた
頂点について,和の偶奇の制約がある.
これはポテンシャル付き unionfind の基本問題で,連結成分内では割り当てが高々
D. Coffee Varieties (hard version)
難しかった.種類数だけが重要なので,保持しているものと重複していることが分かったら,どれと重複しているかは突き止める必要がないです.
おおよそ次を繰り返すという流れで解けます.
- 現在保持しているインデックスを適当な順番に並べ列を作る.まずメモリをクリアして,次にその列にしたがってクエリしていく.
- クエリで Yes がかえってきたインデックスは破棄,No がかえってきたインデックスのみを保持しなおす.
これを繰り返した結果,どの
例えば
E. Cartesian Tree
各要素の dfs 順での preorder, postorder を保持することを考えます.すると,これは区間加算と chmin, chmax などで書けます.
要素を activate したり,区間加算,chmin,chmax をしたり,総和をとったりできればよいです.これは segtree beats! で処理できます.
F. Making Shapes
退化する場合を適切に扱う必要はありますが,本質的には次が重要です.
が 種類,それぞれたくさんある. 個ずつ選ぶ方法を数えよ. , , , という制約がある.