灰色diff カテゴリーの記事一覧 - けんちょんの競プロ精進記録

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

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

灰色diff

AtCoder ABC 310 C - Reversible (4Q, 灰色, 300 点)

種類数に関する面白い問題! 問題へのリンク 問題概要 2 つの文字列 は、 である を左右反転してできる文字列 について、 である といういずれかの条件を満たすとき、似ているとみなす。 与えられた 個の文字列 について、似ている文字列は同一視することに…

AtCoder ABC 244 C - Yamanote Line Game (4Q, 灰色, 300 点)

バケットの練習を兼ねた、インタラクティブ問題! 問題へのリンク 問題概要(インタラクティブ) 最初に、正の整数 が与えられて、ゲームをする。あなたは高橋君で先手である。相手は青木君で後手である。 交互に、1 以上 以下の整数を言っていく。ただし、…

AtCoder ABC 296 C - Gap Existence (4Q, 灰色, 300 点)

「変数を固定する考え方」と「set の活用」を組み合わせる練習問題! 問題へのリンク 問題概要 整数 と、 個の整数 が与えられる。 を満たす [tex i, j] ( でもよい) が存在するかを判定せよ。 制約 考えたこと この問題のように、 という 2 つの変数を考え…

AtCoder ABC 164 C - gacha (5Q, 灰色, 300 点)

set の練習問題! 問題へのリンク 問題概要 個の文字列 が与えられる。 重複を除くと何種類の文字列があるでしょうか。 制約 文字列長さは 10 以下 考えたこと 重複を除外したいとなったら、集合型(C++ ならば set 型)が使える! 具体的には、set<string> 型の変数</string>…

AtCoder ABC 236 C - Route Map (5Q, 灰色, 300 点)

set の練習問題! 問題へのリンク 問題概要 個の文字列 と、 個の文字列 が与えられる。 について、 の中に と一致するものがあるかどうかを判定せよ。 制約 各文字列の長さは 10 以下 考えたこと set 型のよい練習問題。 を格納する集合(C++ であれば set<string> </string>…

AtCoder ABC 212 C - Min Difference (4Q, 灰色, 300 点)

いろんな解法がある。ここでは、ソートで解いてみよう! 問題へのリンク 問題概要 長さ の数列 と、長さ の数列 が与えられる。 各数列から要素 を選んだときの差 の最小値を求めよ。 制約 考えたこと 本当にいろいろな解き方がある。その中でも易しいのは、…

AtCoder ABC 083 C - Multiple Gift (5Q, 灰色, 300 点)

初歩的な Greedy の問題と言える。 問題へのリンク 問題概要 以上 以下の整数からなる数列 であって、 は で割り切れる という条件を満たすものを考える。そのような数列の長さの最大値を求めよ。 制約 考えたこと 基本的には、なるべく小さい値でスタートし…

AtCoder ABC 083 B - Some Sums (6Q, 灰色, 200 点)

整数の「各桁の和」を求める問題 問題へのリンク 問題概要 1 以上 以下の整数のうち、10 進法での各桁の和が 以上 以下であるものの総和を求めてください。 考えたこと まず、整数 の各桁の和を求める方法を確認しておこう。それについては、この記事に書い…

AtCoder ABC 080 B - Harshad Number (7Q, 灰色, 200 点)

整数値の各桁の値の和を求める方法を確認しておこう! 問題へのリンク 問題概要 整数 を十進法で表したときの各桁の数字の和が、 を割り切るとき、 をハーシャッド数という。 与えられた整数 がハーシャッド数であるかどうかを判定せよ。 解法 整数 の各桁の…

AtCoder ABC 221 B - typo (6Q, 灰色, 200 点)

全探索しよう! こういう問題で、ただちに「全探索しよう」と思えるかどうかがすごく大事! 問題へのリンク 問題概要 長さの等しい文字列 が与えられる。 に対して、次の操作を高々 1 回実行することで、 に一致させられるかどうかを判定せよ。 (操作) の隣…

AtCoder ABC 390 A - 12435 (6Q, 灰色, 150 点)

A 問題としては、少し難しめな感じ。 問題へのリンク 問題概要 1, 2, 3, 4, 5 を並び替えて得られる数列 が与えられる。この数列に対して 「隣接する様子を swap する」 という操作をちょうど 1 回だけ行って、単調増加にできるかどうかを判定せよ。 考えた…

AtCoder ABC 079 C - Train Ticket (6Q, 灰色, 300 点)

ABC-C の最易候補! ビット全探索でもいいが、8 通りだけなので if 文の羅列でも OK。 問題へのリンク 問題概要 4 つの整数 が与えられる。 □ □ □ = 7 となるように、□ に + または - を入れよ。 制約 考えたこと □ は 3 個ある。それぞれに「+」と「-」の…

AtCoder ABC 076 B - Addition and Multiplication (6Q, 灰色, 200 点)

Greedy の本当に初歩の問題といえる。 問題へのリンク 問題概要 整数 1 がある。この整数に対して、以下のいずれかの操作を 回行う。 操作 A:整数値を 2 倍する 操作 B:整数値に を足す 操作後の整数値の最小値を求めよ。 制約 考えたこと 基本的に、「も…

AtCoder ABC 073 C - Write and Erase (4Q, 灰色, 300 点)

色々な解法があるが、set を使うのが楽。set のよい練習問題とも言える。 問題へのリンク 問題概要 最初何も書いていない黒板がある。次の 回の操作を行った。 回目の操作では、整数 を考える 黒板に が書かれていない場合は、新たに を黒板に書く 黒板に が…

AtCoder ABC 389 B - tcaF (6Q, 灰色, 150 点)

for 文または while 文の練習問題 問題へのリンク 問題概要 正の整数 が与えられる。ある正の整数 が存在して を満たすことが保証される。 を求めよ。 制約 考えたこと と計算を続けていって、 に一致したところで break して、そのときの値を答えればよい。…

AtCoder ABC 388 A - ?UPC (9Q, 灰色, 100 点)

基本的な文字列操作の問題! 問題へのリンク 問題概要 文字列 が与えられる。 の先頭の文字に "UPC" を付け加えてできる文字列を出力せよ。 考えたこと 文字列 S の先頭の文字は S[0] によって取得できる。その文字を出力したあと、続けて "UPC" を出力すれ…

AtCoder ABC 389 A - 9x9 (8Q, 灰色, 100 点)

完全既出は珍しい! 問題へのリンク 問題概要 "6x4" のような、「一桁かける一桁」の計算を表す 3 文字の文字列 が与えられる。この計算結果を求めよ。 考えたこと この問題と完全に同じですね。 drken1215.hatenablog.com コード #include <bits/stdc++.h> using namespace</bits/stdc++.h>…

AtCoder ABC 387 A - Happy New Year 2025 (9Q, 灰色, 100 点)

久しぶりに簡単な問題の到来! 問題へのリンク 問題概要 正の整数 が与えられるので、 の二乗の値を出力せよ。 考えたこと の二乗は、 (A + B) * (A + B) によって計算できる。これを実装すればよい。 コード #include <bits/stdc++.h> using namespace std; int main() { i</bits/stdc++.h>…

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

いろんな解法が考えられる。 問題へのリンク 問題概要 4 枚のカードがあって、それぞれのカードには整数 が書かれている。 ここに 1 枚カードを加え、フルハウスとできるか判定せよ。 制約 考えたこと 色んな解法が考えられるが、この手のものは「ソート」が…

AtCoder ABC 066 B - ss (6Q, 灰色, 200 点)

全探索に慣れよう! 問題へのリンク 問題概要 同じ文字列を二個連結してできるような文字列を「偶文字列」とよぶ。 与えられた偶文字列 について、末尾の文字を 1 文字以上消して作れる偶文字列のうち、その最大長を答えよ。 制約 考えたこと 全探索しよう!…

AtCoder ABC 068 B - Break Number (6Q, 灰色, 200 点)

この手のものは関数化するのがオススメ! 問題へのリンク 問題概要 正の整数 が与えられる。 以上 以下の整数のうち、2 で割れる回数が最大のものを求めよ(タイがないことが証明できる)。 制約 考えたこと 全探索しよう! 具体的には、 について、「 を 2 …

AtCoder ARC 045 A - スペース高橋君 (7Q, 試験管灰色)

現代の AtCoder にはあまりない「一行読み込み」を要求する問題 問題へのリンク 問題概要 "Left Left Right Right AtCoder" のように、"Left", "Right", "AtCoder" のいずれかを空白区切りで連結した文字列が一行で与えられる。 "Left" は "<" に replace し…

AtCoder ABC 067 B - Snake Toy (6Q, 灰色, 200 点)

ソートの練習! 問題へのリンク 問題概要 個の整数 から 選んで総和をとる。 総和を取った値の最大値を求めよ。 制約 考えたこと 個の整数 を大きい順に並べておいて、大きい順に 個とって足せばよい。 C++ では、大きい順にソートするのは sort(l.begin(), …

AtCoder ABC 064 B - Traveling AtCoDeer Problem (7Q, 灰色, 200 点)

ちょっと発想が必要な問題。 問題へのリンク 問題概要 個の家が並んでいる。 個目の家は座標 にある。このすべての家にプレゼントを配る。 好きな場所から開始し好きな場所で終了することができるとき、最小の移動距離を求めよ。 制約 考えたこと 下の図のよ…

AtCoder ABC 063 B - Varied (6Q, 灰色, 200 点)

とても教育的な易しい問題! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 の文字がすべて互いに相異なるかどうかを判定せよ。 解法 (1):多重 for 文 最も素朴な方法は、 から 2 文字を選ぶ方法をすべて試して、「それらが異なっている…

AtCoder ABC 062 B - Picture Frame (6Q, 灰色, 200 点)

こういう処理に慣れておくと、将来的に「番兵法」などにも使える。 問題へのリンク 問題概要 縦 ピクセル、横 ピクセルの画像があります。 各ピクセルは英小文字で表される。 この画像の周囲 1 ピクセルを # で囲んだものを出力してください。 制約 考えたこ…

AtCoder ABC 061 B - Counting Roads (5Q, 灰色, 200 点)

「グラフ」の基礎問題! グラフを知らなくても解ける。 問題へのリンク 問題概要 個の都市 () があり、 本の道路がある。 番目の道路は、都市 と都市 を結んでいる。同じ 2 つの都市を結ぶ道路は、1 本とは限らない。 各都市から他の都市に向けて、何本の道…

AtCoder ABC 385 B - Santa Claus 1 (5Q, 灰色, 200 点)

二次元グリッド上のシミュレーション問題! 問題へのリンク 問題概要 のグリッドが与えられる。各マスは '.':通路マス '#':壁マス '@':アイテムマス のいずれかである。最初、マス にいる。 今、グリッド上で文字列 に示す移動をする(U, D, L, R のいず…

AtCoder ABC 385 A - Equally (7Q, 灰色, 100 点)

場合分けを頑張ろう! 問題へのリンク 問題概要 3 つの整数 をいくつかのグループに分けて、各グループに含まれる整数の総和を等しくできるかを判定せよ。 考えたこと 次の 2 つの場合が考えられる。 2 つのグループに分けて、総和を等しくする 3 つのグルー…

AtCoder ABC 384 B - ARC Division (7Q, 灰色, 200 点)

B 問題としては易しめ。 問題へのリンク 問題概要 レーティングが の人が 回コンテストに参加した。 回目のコンテストでは、Div. のコンテストに参加して、もしレーティング更新対象者であれば、レーティングは だけ加算される(負値もありうる)。 ARC Div.…