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

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

AOJ

OUPC 2024 day1-C Handai Color (3D)

面白かった! 問題へのリンク editorials 問題概要 3 つの文字 B, Y, K からなる長さ の文字列 が与えられる。 この文字列をいくつかの区間に分割する。各区間について、 ランレングス圧縮すると、B -> Y -> K の順になるもの:区間の長さだけスコアを獲得 …

AOJ 2997 Horizontal-Vertical Permutation (JAG 夏合宿 2019 day3-J) (4D)

たまたま作れた!!! 個人的傑作の自作構築問題。 問題へのリンク editorials 問題概要 正の整数 が与えられる。 のマス目に 1 以上 以下の整数を入れる方法であって、次の条件を満たすものを構築せよ。 【条件】 について、 行目または 列目のマスは 個あ…

AOJ 1464 Mixing Solutions (ICPC アジア 2024 J) (6D)

にょぐた君と一緒に考察した。面白かった。公式解説は多面体で考えているけど、ここでは LP 双対で解いてみる。 問題へのリンク commentary 問題概要 種類の水溶液がある。水溶液 は、 として、 水溶液全体の重さが g 1 g あたりの溶質の重さが g 以上 g 以…

AOJ 1460 The Farthest Point (ICPC アジア 2024 F) (5D)

小谷の蟻の問題! 問題へのリンク 問題概要 の直方体の表面上で、1 つの頂点から最も遠い点への距離を求めよ。 下の図は 1 x 1 x 2 の例であり、とくに「小谷の蟻の問題」と呼ばれている。 制約 考えたこと 1 x 1 x 2 のときに、直方体の反対側の頂点が答え…

AOJ 1462 Remodeling the Dungeon 2 (ICPC アジア 2024 H) (6D)

ICPC 本番に正解チームの現れなかった難問! 問題へのリンク 問題概要 サイズのグリッドグラフから、いくつかの頂点と辺を削除してできる連結なグラフが与えられる。 このグラフの全域木であって、どの 2 つの葉も、その間の距離が偶数であるものを 1 つ求め…

AOJ 3022 Cluster Network (AUPC 2017 day2-J) (4D)

Block-Cut 木を試すのにすごくいい問題! 問題へのリンク 問題概要 頂点数 、辺数 の連結な無向グラフが与えられる(単純とは限らない)。頂点 には、重み がついている。各頂点について、以下の問に答えよ。 【問】 その頂点を除外したグラフを考える。この…

AOJ 1459 E-Circuit Is Now on Sale! (ICPC アジア 2024 E) (1Q)

これは比較的易しめだった。探索するだけ! 問題へのリンク 問題概要 下図のように「計算過程」を表す二次元グリッドが与えられる。文字 . 以外の文字は木をなしていて、葉には数値がかかれている。演算子 +、-、*、/ はそれぞれ「大きい方から小さい方に演…

AOJ 1458 Tree Generators (ICPC アジア 2024 D) (4D)

すごく悩んだけど、なんとか解けた! 問題へのリンク(仮) 問題概要 次の図のように、木を、文字 (、)、1 からなる文字列で表す(異なる木が同じ文字列になることもある)。文字列の生成規則は次のように表される。 E ::= ‘1’ | ‘(’ E E ‘)’ 詳細は問題文を…

AOJ 1457 Omnes Viae Yokohamam Ducunt? (ICPC アジア 2024 C)

面白かった! 一見 MST の問題に見えるけど、主客転倒すると Dijkstra だった。 問題へのリンク(仮) 問題概要 頂点数 、辺数 の連結な単純無向グラフが与えられる。頂点 には重み がついていて、辺 には重み がついている。このグラフの全域木のコストを次…

AOJ 1456 The Sparsest Number in Between (ICPC アジア 2024 B)

これ面白かった! ABC-E で出題されて水色 Diff などがあり得そうな雰囲気。 問題へのリンク(仮) 問題概要 正の整数 が与えられる。 以上 以下の整数のうち、popcount が最小のものを求めよ。複数ある場合は、そのうちの最小の整数を求めよ。 制約 考えた…

AOJ 1455 Ribbon on the Christmas Present (ICPC アジア 2024 A)

制約的に でも通るが、スタックを用いて でも解ける! 問題へのリンク(仮) 問題概要 マスからなるマス目があり、最初各マスには 0 が書かれている。このマス目に対して、以下の操作を行う。 正の整数値 と、連続するいくつかのマスを選ぶ(ただし、どのマ…

JOI 予選 2010 C - パーティー (AOJ 0545) (4Q, 難易度 4)

グラフの基本問題! 問題へのリンク 問題概要 の人 がいる。 組の友達関係があって、 組目の友達は人 と である。 人 1 の友達と、人 1 の友達の友達に相当する人 (人 1 を除く) が何人いるかを答えよ。 制約 解法 この問題はグラフの練習問題といえる。グラ…

JOI 予選 2010 B - すごろく (AOJ 0544) (6Q, 難易度 3)

すごろくを題材にした問題。すごろくの各マスには「oo マス進む」などの指示がある。これを上手に管理しよう。 問題へのリンク 問題概要 マス からなる双六が与えられる。マス 1 がスタート、マス 以上がゴールである。 回サイコロを振って、 回目には目 だ…

JOI 二次予選 2020 A - ポスター (AOJ 0672) (4Q, 難易度 4)

ちょっと重たい全探索問題 問題へのリンク 問題概要 の形に配列された二次元文字列 が与えられる。 に対して、次の操作を繰り返すことで に一致させたい。 反時計回りに 90 度回転する (コスト 1) 時計回りに 90 度回転する (コスト 1) 1 マス選んで文字を変…

JOIG 本選 2022 A - ピアノコンクール (AOJ 0729) (7Q, 難易度 2)

for 文の練習! 問題へのリンク 問題概要 個の整数 のうち、最大値と最小値を除外した 個の整数の総和を求めよ。 制約 個の整数はすべて互いに相異なる 解法 まず 個の整数を「配列」として受け取りましょう (C++ では vector<int> 型など)。 その後、配列に対し</int>…

JOI 二次予選 2022 A - 図書館 2 (AOJ 0719) (4Q, 難易度 2)

スタックを用いたシミュレーション問題! 問題へのリンク 問題概要 最初、本は積まれていない。次の 回のクエリに答えよ 【クエリ】 各クエリでは文字列 が与えられる。 が "READ" ではないとき、タイトルが である本が新たに上に積まれる が "READ" である…

JOI 一次予選 2025 第 1 回 D - どら焼き (7Q, 難易度 2)

多重 for 文の練習! 問題へのリンク 問題概要 2 つの数列 、 が与えられる。数列 からそれぞれ 1 個ずつ選んでできる 個のペアについて 「その和」と「その最大値」の積 を求めて、それらの総和を求めよ。 制約 考えたこと 2 つの数列からそれぞれ要素をと…

JOI 一次予選 2025 第 1 回 C - OIJ (7Q, 難易度 2)

for 文と if 文の練習! 問題へのリンク 問題概要 文字 J, O, I からなる長さ の文字列 が与えられる。 この文字列において、J を O に、O を I に、I を J に置換した文字列を答えよ。 解法 for 文を用いることで、 の各文字にアクセスすることができる。左…

JOI 一次予選 2025 第 1 回 B - 散歩 (8Q, 難易度 1)

ちょっとした算数的な考え方が必要になる問題 問題へのリンク 問題概要 JOI 君は以下の行動を行動 A → 行動 B → 行動 A → ⋯ のように交互に繰り返す。 行動 A:3m 前に進む 行動 B:2m 後ろに戻る 行動を合わせて 回行うとき、何m進むか? 解法 このような問…

JOI 一次予選 2025 第 1 回 A - 鉛筆 2 (9Q, 難易度 1)

とても易しい算数の問題! 問題へのリンク 問題概要 円もっている。 1 個 5 円の鉛筆を何本買えるか? 解法 答えは「 を 5 で割った商」となります。これは C++ では A / 5 と書けます。 コード #include <bits/stdc++.h> using namespace std; int main() { int A; cin >> </bits/stdc++.h>…

JOI 予選 2009 F - ビンゴ (AOJ 0537) (1D, 難易度 7)

一見すると計算量が厳しい問題にも見える。ちょっとした発想の転換が必要になる。 問題へのリンク 問題概要 正の整数 が与えられる。次の条件を満たす 個の整数 の組が何個あるかを 100000 で割った値を求めよ。 制約 [tex 1 \le N \le 7] 考えたこと 安直に…

JOI 二次予選 2023 C - 塗りつぶし (AOJ 0749) (1D, 難易度 7)

ちょっと実装が重たい。 問題へのリンク 問題概要 グリッドが与えられる。最初、どのマスにもなんらかの色(整数値)がついている。 マス から辺で接しているマスへの移動を繰り返し、マス と色が異なるマスに入ることなく移動できるマスの集まりを、マス の…

JOI 二次予選 2023 B - ジョイ四人組 (AOJ 0748) (2Q, 難易度 5)

「最大値と最小値の差」を最小化せよと言われたら、最大値または最小値を固定すると上手くいくことが多い! 問題へのリンク 問題概要 サイズが であるような 4 つの数列 が与えられる。 これらの数列から 1 個ずつ要素を選んで とする。 の値の最小値を求め…

JOIG 2024 B - ダンス (4Q, 難易度 4)

ちゃんと証明しようとすると、結構大変! 問題へのリンク 問題概要 人の生徒がいて、生徒 の身長は である。 これらの生徒を 2 人ずつ 組に分けて、どの組も身長差が 以下となるようにしたい。 そのようなことが可能かどうかを判定せよ。 制約 考えたこと こ…

JOI 予選 2009 E - シャッフル (AOJ 0536) (2D, 難易度 8)

シミュレーションと呼ばれるジャンルの中では、最も重たい部類の問題 問題へのリンク 問題概要 1 から までの整数の書かれたカードがこの順に並んでいる。このカード列に以下の 回の操作を行う。 回目の操作は、整数 ()によって表される。操作前のカードの…

JOI 予選 2009 D - 薄氷渡り (AOJ 0535) (2Q, 難易度 5)

再帰関数を使った全探索の練習! こういうのは本当に練習になる。 問題へのリンク 問題概要 各マスが 0 または 1 であるような の二次元グリッド が与えられる。 グリッド上の各マスを渡り歩いていく移動経路のうち、次の条件を満たすものを考える。 1 回の…

JOI 予選 2009 B - コンテスト (AOJ 0533) (6Q, 難易度 2)

ソートの練習問題 問題へのリンク 問題概要 20 個の整数が与えられる。 前半 10 個の整数のうち、大きい順に 3 個の整数の総和 後半 10 個の整数のうち、大きい順に 3 個の整数の総和 をそれぞれ求めよ。 解法 前半ができれば後半も同様なので、前半を考えま…

JOI 予選 2019 C - マルバツスタンプ (AOJ 0654) (4Q, 難易度 3)

文字列を左から見ていき、隣接する 2 文字が異なる箇所を見つけるやいなや、マルバツスタンプを使う、という Greedy でよい! 問題へのリンク 問題概要 マルスタンプ、バツスタンプ、マルバツスタンプの 3 種類がある。 マルスタンプを使うと、文字 'O' を印…

JOI 予選 2019 B - すごろくと駒 (AOJ 0653) (6Q, 難易度 2)

シミュレーションを冷静に実装しよう! 問題へのリンク 問題概要 マス があって、マス 1 はスタート、マス 2019 はゴールである。 個のコマがあり、それぞれ 番目にマスに置かれている。 次の 回の操作を実行する。 回目の操作ではコマ を動かそうとする も…

JOI 予選 2019 A - ソーシャルゲーム (AOJ 0652) (6Q, 難易度 2)

結構頭がこんがらがる問題だと思う。 問題へのリンク 問題概要 あるソーシャルゲームでは、1 日につき 1 回までログインすることができ、ログインするたびに 枚のコインが得られる。 さらに、月曜日から日曜日まで 7 日連続でログインすると、そのたびに、追…