Greedy
これは楽しい 問題へのリンク 問題概要 個の整数 が与えられる。 今ある整数の中から 1 個 ( とする) を選んで、好きな整数 を選んで、 を と に分裂させる という操作を繰り返して、最終的に得られる整数の集合が、まったく同一の 2 つの集合に分けられるよ…
最初スライムの色の種類が 種類かと思ってしまって、 の場合が面倒じゃないかと思ってしまった。 Colorful Slimes 2 へのリンク 問題概要 (AGC 026 A) 1〜10000 の整数からなる 要素の数列が与えられる。 数列の好きな箇所を選んで 1〜10000 のうちの好きな…
貪欲でも、実家 DP でも、ソシャゲ DP 的な DP でも解けるみたいなのんな。これ、実装がややこしくて、苦手なんて言葉ではいい表せないほどの超絶苦手系なのん。。。 Gerrymandering 問題へのリンク 問題概要 N 個の街が一直線上に並んでいて、各街は 2 種類…
ABC 100 D - Patisserie ABC 問題概要 整数 3 つ組 (xi, yi, zi) が N 個与えられる。 このうちの M 個選んで、 (x の選んだ M 個の総和の絶対値) + (y の選んだ M 個の総和の絶対値) + (z の選んだ M 個の総和の絶対値) が最大になるようにせよ。 制約 1 <=…
コンテスト本番における 僕のコード: https://beta.atcoder.jp/contests/agc025/submissions/2612210 tourist のコード: https://beta.atcoder.jp/contests/agc025/submissions/2609185 解けたとはいえ、反省点も多い感じですね。。。 問題へのリンク 問題概…
ARC 098 E Range Minimum Queries 問題概要 長さ N の数列 A と整数 K が与えられる。 この配列に、以下の操作を Q 回行います。 長さ K の連続する部分列を 1 つ選ぶ。 そして、選んだ部分列に含まれる K 個の要素のうち最小のもの(複数ある場合はその中で…
CSA 079 DIV2 C K Inversions 問題概要 1 ~ N の順列で転倒数が K となるもののうち、辞書順最小のものを求めよ。 2 <= N <= 105 0 <= K <= NC2 やったこと 辞書順最小ということで、とにかく今見ている部分を極力小さくする Greedy を行う。 具体的には、…
B なのに難しかったのん。 CSA 069 DIV2 B Reverse Subarray N 要素からなる数列が与えられる。 ここから連続する区間を reverse することで元の数列全体が単調非減少となるようにしたい。 そのような区間の選び方は何通りあるか? またそのような区間のうち…
辞書順最小なものを求めるとき、しばしば貪欲法が有効ですね! 問題へのリンク editorial 問題概要 英小文字のみからなる長さ の文字列 が与えられます。 の長さ の部分文字列であって、辞書順最小のものを求めてください。 制約 辞書順最小 → 貪欲法! 「辞…
「最小値の最大化」には二分探索が有効という典型ですね。 問題へのリンク 解説へのリンク 前提知識 二分探索にまったく経験がない場合は、まずは次の記事を読んでみてください。 qiita.com 問題概要 長さ のようかんがあって、そのうち左端から の位置に切…