けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

NoviSteps2D

AtCoder ABC 359 F - Tree Degree Optimization (2D, 青色, 550 点)

資源配分問題などとも呼ばれる、貪欲法が使える問題! 問題へのリンク 過去によく似た類題を出題したことがある。 drken1215.hatenablog.com 問題概要 正の整数からなる長さ の数列 がある。頂点 をもつ木をすべて考えたときの、 の最小値を求めよ ( は頂点 …

AtCoder ABC 357 F - Two Sequence Queries (2D, 青色, 550 点)

maspy さんの次のツイートがすべて!! F(cnt,sum) という組と定数加算作用が遅延セグ木にのるというのはよく知られていると思いますが、これは要素に対する (0乗和, 1乗和) と解釈できて、組 (0,1,...,k 乗和) などに一般化できます。今回は要素 (x,y) に対…

AtCoder ABC 207 E - Mod i (2D, 青色, 500 点)

この手の累積和高速化が半端じゃなく苦手なことがわかった。 問題へのリンク 問題概要 長さ の数列 が与えられる。 この数列をいくつかの区間に分割する方法のうち、 番目の区間に含まれる数列の要素の総和が で割り切れるようなものの個数を 1000000007 で…

AtCoder ABC 205 E - White and Black Balls (2D, 黄色, 500 点)

カタラン数をわかっていればできる! 問題へのリンク 問題概要 正の整数 が与えられる。黒いボール 個と、白いボール 個を一列に並べる方法のうち、次の条件を満たすものの個数を 1000000007 で割った余りを求めよ。 【条件】 どの についても、列の左から …

AtCoder ABC 354 F - Useless for LIS (2D, 青色, 525 点)

LIS の応用問題。LIS を分かっていれば、その DP の過程を保存しておくことで、この問題が解けることがわかる! 問題へのリンク 問題概要 長さ の数列 が与えられる。 各 について、要素 を含むような数列 の LIS が存在するかどうかを判定せよ。 (マルチテ…

AtCoder ABC 353 G - Merchant Takahashi (2D, 青色, 550 点)

の計算量までなら比較的すぐできる! 問題へのリンク 問題概要 街 があって、街 間の行き来には だけの通行料がかかる。 回の市場がそれぞれ街 で行われ、 円えられる。 最初、無限の所持金を持っている。いくつかの市場に参加する (全く参加しなくてもよい)…

Yosupo Library Checker - Dueue Operate All Composite (2D)

SWAG を履修した! 問題へのリンク 問題概要 一次関数の列を考える。初期状態では空である。以下の 個のクエリを処理せよ。 クエリタイプ 1 ():一次関数 を列の先頭に挿入する クエリタイプ 2 ():一次関数 を列の末尾に挿入する クエリタイプ 3:列の先頭…

Yosupo Library Checker - Queue Operate All Composite (2D)

SWAG を履修した! 問題へのリンク 問題概要 一次関数の列を考える。初期状態では空である。以下の 個のクエリを処理せよ。 クエリタイプ 1 ():一次関数 を列の末尾に挿入する クエリタイプ 2:列の先頭の要素を削除する クエリタイプ 3 ():列を としたと…

EDPC (Educational DP Contest) V - Subtree (2D)

全方位木 DP の練習問題!! が素数とは限らないので「左右から累積和」が必要なタイプの全方位木 DP。 問題へのリンク 問題概要 正の整数 と、頂点数 の木 が与えられる。この木の各頂点を「黒色」または「白色」に塗る。 各頂点 について、以下の条件をみ…

JOIG 春合宿 2023 day2-2 White Light (2D, 難易度 8)

セグメント木を用いた DP 高速化! 問題へのリンク editorials 問題概要 'R' と 'G' と 'B' のみからなる長さ の文字列 が与えられる。以下の操作を繰り返し行うことで、"RGB" を繰り返す文字列となるようにしたい。 (操作) 連続する 個以下の文字を消す 目…

Yosupo Library Checker - Longest Common Substring (2D)

2 つの文字列の最長の共通部分文字列 (部分列ではなく) を求める問題! これ、蟻本の例題にもあるけど、POJ ではなく Yosupo Judge で解けるようになったのは大きい! なお、Suffix Automation があれば本当に貼るだけみたい。 問題へのリンク 問題概要 2 つ…

AtCoder Library Practice Contest L - Lazy Segment Tree (2D)

タイトル "Lazy Segment Tree" の名の通り、遅延評価セグメント木の練習問題! 問題へのリンク 問題概要 長さ の 0 と 1 のみからなる数列 が与えられる。この数列に対して、次の 回のクエリに答えよ。 クエリタイプ 1 ():数列の区間 内の各要素の値につい…

Yosupo Library Checker - Range Affine Range Sum (2D)

これ実は ACL Practice Contest の K 問題と同じらしい atcoder.jp 問題へのリンク 問題概要 長さ の数列 が与えられる。この数列に対して、次の 回のクエリに答えよ。 クエリタイプ 1 ():数列の区間 内の各要素の値を 倍して を足せ クエリタイプ 2 ():数…

AtCoder Library Practice Contest K - Range Affine Range Sum (2D)

遅延評価セグメント木の練習! 問題へのリンク 問題概要 長さ の数列 が与えられる。この数列に対して、次の 回のクエリに答えよ。 クエリタイプ 1 ():数列の区間 内の各要素の値を 倍して を足せ クエリタイプ 2 ():数列の区間 内の要素の総和を 99824435…

競プロ典型 90 問 077 - Planes on a 2D Plane(2D, ★7)

二部マッチングの練習問題 問題へのリンク editorial へのリンク 問題概要 二次元平面上に 体の飛行機がある。飛行機 は座標 にいる。各飛行機に対して適切に 8 種類の向き付けをしたい (上・下・左・右・左上・左下・右上・右下)。 具体的には、 秒後におい…

AtCoder Library Practice Contest D - Maxflow (2D)

グリッドを市松模様に塗って、「黒色マス」と「白色マス」で二部マッチングするという、超典型問題! 問題へのリンク 問題概要 のグリッドが与えられます。 各マスは「障害物」が置かれているか、「空」であるかのいずれかです。入力データにおいては、障害…

AtCoder Library Practice Contest F - Convolution (2D)

本当に ACL の convolution をそのまま試してほしいという問題ですね。 問題へのリンク 問題概要 整数列 と、整数列 が与えられる。 によって定義される整数列 を求めよ。 制約 解法 とにかく、ACL のドキュメントにそのままの式が書いてある! https://atco…

AtCoder Library Practice Contest H - Two SAT (2D)

2-SAT は強連結成分分解の典型的な応用例! 問題へのリンク 問題概要 旗 を数直線上に設置したい。旗 は、座標 または座標 に設置可能である。 ただし、どの 2 つの旗も、その距離が 以上となるようにする必要がある。 本の旗を設置することが可能かどうかを…

AtCoder Library Practice Contest I - Number of Substrings (2D)

Suffix Array と LCP の理解を問う問題。超シンプルで面白い問題! 問題へのリンク 問題概要 長さが の文字列 が与えられる。 の連続する部分文字列の種類数を答えよ。 制約 解法 文字列 の Suffix とは「後ろの何文字かをとってできる文字列」のことである…

AtCoder ARC 008 D - タコヤキオイシクナール (2D, 試験管橙色)

セグメントツリーの二項演算は、モノイドについて実現され、結合法則のみ満たしていれば交換法則が必要ないことをハッキリと映し出した問題を解きました。 セグメントツリーの二項演算に必要な要件について koba さんの記事がとても参考になります: データ構…