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

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

2023-11-01から1ヶ月間の記事一覧

AtCoder ABC 328 F - Good Set Query (水色, 525 点)

重み付き Union-Find そのもの。もしくは、列挙可能 Union-Find 使ってマージテクでも。 問題へのリンク 問題概要 個の整数値 に関する制約条件が 個与えられる。 番目の制約条件では 3 つの整数の組 が与えられ、 という形をしている。ここで、次のクエリに…

AtCoder ABC 326 C - Peak (灰色, 300 点)

lower_bound() 系の教育的問題 問題へのリンク 問題概要 一直線上に 個の点がある。点 の座標は である。 この直線上で幅 の区間を配置する。左端の座標を とするとき、 を満たす の個数をスコアとする。最大スコアを求めよ。 制約 考えたこと まず重要な考…

AtCoder ABC 327 F - Apples (青色, 550 点)

遅延セグ木 (区間加算 + 区間 max 取得) を用いた平面走査! 問題へのリンク 問題概要 二次元平面上に 個の点がある。点 の座標は である。 この 2 次元平面上でサイズが の長方形領域 (右辺と上辺は含まない) を自由に動かしていくとき、この長方形領域に覆…

AtCoder ABC 326 G - Unlock Achievement (橙色, 625 点)

2 変数劣モジュラ関数の和の最小化を最小カットにするやつ! 問題へのリンク 問題概要 種類のスキルがある。それぞれ初期状態のスキルレベルは 1 であるが、最大で 5 まで上げられる。スキル のスキルレベルを 1 上げるのに必要なコストは 円である。 種類の…

AtCoder ABC 327 E - Maximize Ratin (水色, 475 点)

式がいかめしくて戸惑うけど、DP 自体は比較的単純 問題へのリンク 問題概要 個の値 が与えられる。 これらの中から順序を保っていくつか選ぶ。選び方のスコアは、 個の整数 を選んだとしたとき、 で与えられる。このスコアの最大値を求めよ。 制約 考えたこ…

AtCoder ABC 327 D - Good Tuple Problem (茶色, 400 点)

まず、これをグラフの問題として捉えるところに、一つ山がある印象だけど、みんなあっさり超えていてすごい! 問題へのリンク 問題概要 以下の正整数からなる長さ の数列 、 が与えられる。これらの数列の組が次の条件を満たすかどうかを判定せよ。 0 と 1 …

AOJ 4003 演算装置の接続 (PCK 2022 本選 4)

次数制約つきのグラフを構築するためには、次数の大きいところから Greedy というよく知られた問題! 問題へのリンク 問題概要 正の整数からなる長さ の数列 が与えられる。 以下の条件を満たすような、頂点数 のグラフが存在するかどうかを判定せよ。 単純…

AtCoder ABC 327 C - Number Place (灰色, 250 点)

9 × 9 に並んだ数字が「数独」の解になっているかを判定する問題 問題へのリンク 問題概要 下のような 9 × 9 グリッドが与えられる。各マスの値は 1 から 9 までの整数値である。 このグリッドが数独の要件を満たすかを判定せよ。 1 2 3 4 5 6 7 8 9 4 5 6 7…

AtCoder ABC 327 B - A^A (灰色, 200 点)

素直に for 文で探索すればよいのだけど、意外と A をどこまで探索すればいいのかの判断も難しくて、戸惑った人も多いかもしれない。 問題へのリンク 問題概要 正の整数 が与えられる。 となる正の整数 を求めよ。存在しない場合は -1 を出力せよ。 制約 考…

AtCoder ABC 327 A - ab (灰色, 100 点)

文字列の練習! 問題へのリンク 問題概要 英小文字からなる長さ の文字列 が与えられる。 この文字列 中に、文字 'a' と 'b' が隣接する箇所があるかどうかを判定せよ。 考えたこと for 文を用いて判定していく。添字 i を回していき、 S[i] == 'a' and S[i+…

AtCoder ABC 294 A - Filter (灰色, 100 点)

これは易しめの A 問題! 問題へのリンク 問題概要 長さ の数列 が与えられる。 これらの数値の中から偶数のみを抽出せよ。 考えたこと for 文を回していって、偶数のみ出力すればよい。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vect</bits/stdc++.h>…

AtCoder ABC 299 A - Treasure Chest (灰色, 100 点)

3 重の for 文を書くのが楽だと思う 問題へのリンク 問題概要 3 種類の文字 .、|、* からなる、長さ の文字列 が与えられる。 には | がちょうど 2 つ、* がちょうど 1 つ含まれる。 * が 2 つの | に挟まれているかどうかを判定せよ。 考えたこと 色々な解…

AtCoder ABC 320 B - Longest Palindrome (灰色, 200 点)

最長回文を求める問題! 問題へのリンク 問題概要 文字列 が与えられる。 の連続する部分文字列のうち、回文であるものについて、最長の長さを求めよ。 考えたこと この問題は次の 2 ステップに分かれている。 の連続する部分文字列を全種類抜き取る それら…

AtCoder ABC 309 B - Rotate (灰色, 200 点)

これ、詰まる人には詰まると思う。二次元配列の添字の扱いに習熟していないと難しい。 問題へのリンク 問題概要 のグリッドが与えられる。各マス目には 0 か 1 の値が書かれている。 このグリッドに対して、外周を時計回りに 1 マス分回して得られるグリッド…

AtCoder ABC 309 A - Nine (灰色, 100 点)

上手に整理しよう 問題へのリンク 問題概要 下図のような のグリッドが与えられる。 2 つの整数 ( を満たす) が与えられるので、これら 2 つの整数がグリッド上で左右に隣接しているかどうかを判定せよ。 考えたこと 2 つの数字が左右に隣接するのは、次の 6…

AtCoder ABC 261 B - Tournament Result (灰色, 200 点)

二次元配列を調べる練習問題! 問題へのリンク 問題概要 人のリーグ戦の戦績表が下図のように与えられる。'W' は勝ち、'L' は負け、'D' は引き分けを表す。また、対角線上は '-' である。 4 -WWW L-DD LD-W LDW- この戦績表が矛盾しているかどうかを調べよ。…

AtCoder ABC 261 A - Intersection (灰色, 100 点)

区間の交差を求めるのは頻出の典型処理だし、実務でも使えるテクニックなので、このまま覚えてしまって良いと思う! 問題へのリンク 問題概要 数直線において、 から までの部分をすべて赤色で塗り から までの部分をすべて青色で塗った このとき、赤色と青…

九州大学プログラミングコンテスト 2014 H - お風呂は気持ちいい

最大流を流す練習問題 問題へのリンク 問題概要 人の人 がいる。ある人からある人には魔法パワーを渡していくことができる。具体的には、 組について 人 から人 に対して、最大で だけ魔法パワーを渡せる () ということが指定される。また、 人のうち、 人 …

KUPC 2016 E - 柵

最小カットの練習問題。問題設定がとても面白い! 問題へのリンク 問題概要 のグリッドがある。いくつかのマスにはヤギがいる。具体的な入力では、ヤギのいるマスは文字 'X' で表される。 6 6 ...... ...... ..X... .X..X. ..X... ...... グリッドの外周は外…

TDPC (Typical DP Contest) R - グラフ

「与えられたグラフを強連結成分分解すると DAG になるので、DAG 上で DP する」というのが想定解だが、フローでも解けると話題になった問題! 問題へのリンク 問題概要 頂点数 の有向グラフがある。最初、すべての頂点は白色である。以下の操作を 2 回行う…