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

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

まずソートして考える

AtCoder ABC 050 C - Lining Up (ARC 066 C) (3Q, 緑色, 300 点)

今の時代だとあまり見かけないタイプの数学ゲー問題。 問題へのリンク 問題概要 人 を一列に並べる方法のうち、次の条件をすべて満たすものの個数を 1000000007 で割った余りを求めよ。 人 について、左側にいる人数と右側にいる人数の差が に等しい 制約 考…

AtCoder ABC 342 A - Yay! (6Q, 灰色, 150 点)

これも色んな解法がある! 問題へのリンク 問題概要 英小文字からなる 3 文字以上 100 文字以下の文字列 が与えられる。 はある 1 文字を除いて全て同じ文字で構成されています。その異なる文字があるのは何文字目か? 制約 解法 (1):全探索 大抵の問題は、…

AtCoder ABC 263 A - Full House (6Q, 灰色, 100 点)

この手の問題は最初にソートすると考えやすいことが多い。 問題へのリンク 問題概要 5 枚のカードには数 が書かれている。これがフルハウスであるかを判定せよ。 なお、5 つの数がフルハウスであるとは、同じ数が書かれたカード 3 枚と、別の同じ数が書かれ…

AtCoder ABC 361 C - Make Them Narrow (4Q, 灰色, 250 点)

めっちゃ面白い問題!! 実はよく似た類題として次の問題がある! atcoder.jp 問題へのリンク 問題概要 長さが の数列 が与えられる。この数列から 個の要素を削除する。 残った数からなる数列中の、最大値と最小値の差の最小値を求めよ。 制約 考えたこと …

鉄則本 B11 - Binary Search 2 (4Q, ★3)

lower_bound() の練習!! 問題へのリンク 問題概要 長さ の配列 が与えられる。この配列に対して 回のクエリに答えよ。 【クエリ】 整数 が与えられるので、配列 の中に より小さい要素が何個あるかを求めよ。 制約 解法 github.com コード #include <bits/stdc++.h> using</bits/stdc++.h>…

AtCoder ABC 158 A - Station and Bus (7Q, 灰色, 100 点)

ABC-A のスキルではないけど、ソートしてしまうのが楽。 問題へのリンク 問題概要 長さ 3 の文字列 が与えられる。 に含まれる文字は 'A' か 'B' のいずれかである。 この文字列が 'A' と 'B' をともに含むかどうかを判定せよ。 解法 をソートするのが楽だと…

JOIG 2024 C - 座席 2 (1Q, 難易度 6)

色んな解法が考えられそうな問題で、ドツボにハマりやすくて危険な問題だったと思う。落ち着いて整理してシンプルに考える力が問われる。実は、二分探索などは必要ない問題である。 問題へのリンク editorial 問題概要 人の選手 がいる。選手 の出身国は で…

AtCoder ABC 103 A - Task Scheduling Problem (7Q, 灰色, 100 点)

この問題は意味を理解するのが大変だと思う! 問題へのリンク 問題概要 3 つの整数 が与えられる。これらを適切に並び替えたときの 1 番目と 2 番目の差 2 番目と 3 番目の差 の和として、考えられる最小値を求めよ。 解法 実際に幾つかのケースで手を動かし…

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

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

AtCoder ABC 047 A - キャンディーと2人の子供 (8Q, 灰色, 100 点)

これも「まずソートして考える」が効く系。でも、そうしなくても解ける。 問題へのリンク 問題概要 3 つの正の整数 が与えられる。 これらを 2 つのグループに分けて、各グループの数値の総和が等しくなるようにできるかどうかを判定せよ。 解法 (1):場合分…

AtCoder ABC 046 A - AtCoDeerくんとペンキ (7Q, 灰色, 100 点)

3 つの整数についてあれこれ問う問題はこの時代多かった 問題へのリンク 問題概要 3 個の整数 がある。これらは 1 以上 100 以下の整数である。 これらの整数の種類数を求めよ。 コード この手の問題は、「配列として受け取ってソートする」テクニックが使え…

AtCoder ABC 201 A - Tiny Arithmetic Sequence (7Q, 灰色, 100 点)

意外と頭がこんがらがるかもしれないですね。100 点問題で必須となるテクニックではないですが、ソートすると考えやすいと思います。 問題へのリンク 問題概要 個の整数 が与えられる。 これら 個の整数を適切に並び替えることで、等差数列にすることが可能…

JOIG 春合宿 2022 day1-1 Relay (1Q, 難易度 6)

面白かった! ジャッジページ 問題文 問題概要 人の走者がいる。 人の中から 人を選んで、100m 走る × 3 の 300m リレーを行う。 人目の 100m 走のタイムは 秒、バトンパスタイムは 秒で与えられる。リレーの走者として、 の 人を選んでこの順に走るときの総…

AtCoder ABC 186 D - Sum of difference (茶色, 400 点)

いろんな方法が考えられそう! 問題へのリンク 問題概要 個の整数 が与えられる。 を満たすすべての の組に対する の総和を求めよ。 制約 考えたこと 絶対値のままだと厄介。ちょっと工夫する。まず、数列 の並びを入れ替えたとしても答えが変わらないことに…

JOI 本選 2020 A - 長いだけのネクタイ (難易度 6)

Greedy を考察して、さらに左右から累積和を求める!結構難しい! 問題へのリンク editorial 類題とか drken1215.hatenablog.com 問題概要 長さ の数列 と、長さ の数列 が与えられます。各 に対して、次の値を求めよ。 数列 から を除去してできる長さ の数…

AtCoder ABC 132 C - Divide the Problems (灰色, 300 点)

ソートして頑張る。 ソートすればいいと思い至りさえすれば、結構ソートするだけに近い感じの雰囲気の問題で、一瞬罠があるのかなと怖くなった。 問題へのリンク 問題概要 個の整数 が与えられる。 は偶数である。次の条件を満たすような整数 が何通りあるか…

AtCoder ABC 057 D - Maximum Average Sets (1Q, 青色, 400 点)

これは単に二項係数知っているかを問う感じ...? この頃と今とでは、多少問題傾向も違う気がする。 問題へのリンク 問題概要 個の数値が与えられる。このうち 個以上 個以下を選ぶときのその平均値の最大値を求めよ。 また最大を達成する選び方が何通りある…