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

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

2024-07-01から1ヶ月間の記事一覧

JOI 一次予選 2021 (第 1 回) C - 共通要素 (6Q, 難易度 2)

このような問題を解くためにも、「バケット」を習得しよう! 問題へのリンク 問題概要 長さ の数列 と、長さ の数列 が与えられる。 こっらの数列の双方に登場する数をすべて昇順で出力せよ。 制約 解法 (1):1 から 100 までの数を順に調べる 制約を見よう…

JOI 一次予選 2021 (第 1 回) B - JOI ソート (7Q, 難易度 2)

これは面白い! 問題へのリンク 問題概要 文字 J, O, I からなる、長さ の文字列 が与えられる。 の文字を並び替えて、次の条件を満たすものを求めよ。 すべての文字 J は、すべての文字 O よりも前にある すべての文字 O は、すべての文字 I よりも前にある…

JOI 一次予選 2021 (第 1 回) A - 2 番目に大きい整数 (7Q, 難易度 1)

この時代の一次予選は、まだちょっと難しかった 問題へのリンク 問題概要 3 個の整数 が与えられる。これらの整数のうち、2 番目に大きい値を求めよ。 制約 解法 (1) 最も楽だと思われる方法は、3 個の整数のうちの「最大値」と「最小値」を求めてあげる方法…

JOI 一次予選 2022 (第 3 回) D - ボールの移動 (5Q, 難易度 3)

どのようにデータを管理すればよいか、難しいと感じるかもしれない。 問題へのリンク 問題概要 最初、箱 にそれぞれボール が入っている。 次の 回の操作を行う。 回目の操作では、ボール が入っている箱から、ボール を取り出して、それを箱 に入れる。 操…

JOI 一次予選 2022 (第 3 回) C - 運動会 (7Q, 難易度 3)

問題文が長めだから、丁寧に整理しよう! 問題へのリンク 問題概要 人の生徒のうち、 人は赤組で、 人は白組である。 生徒の一人である葵さんは、自分が何組かを知りたい。そこで、自分以外の 人がそれぞれ赤組であるか白組であるかを調べた。その結果は長さ…

AtCoder ABC 244 A - Last Letter (9Q, 灰色, 100 点)

文字列の末尾の文字を取得する方法を確認しておこう! 問題へのリンク 問題概要 長さ の文字列 が与えられる。 の末尾の文字を出力せよ。 解法 C++ では、文字列 S の末尾の文字は S.back() によって取得できます。 別解 文字列 S の長さが であるとき、末尾…

JOI 一次予選 2022 (第 3 回) B - アイスクリーム (7Q, 難易度 2)

整数の切り上げの問題。意外と正確に解くのは大変かもしれない。 問題へのリンク 問題概要 ベースとなるアイスクリームの金額は 250 円で、高さは cm である。追加のアイスクリームは 1 個につき 100 円で、1 個追加するごとにアイスクリームタワーの高さが …

AtCoder ABC 343 A - Wrong Answer (8Q, 灰色, 100 点)

パズルのような問題! 問題へのリンク 問題概要 0 以上 9 以下の 2 つの整数 が与えられる。 0 以上 9 以下の整数のうち、 とは異なるものを 1 つ求めよ。 考えたこと もし でなければ、0 を出力すれば事足りる。 もし であるならば、0 以外の数 (たとえば 1…

JOI 一次予選 2022 (第 3 回) A - 身長 (10Q, 難易度 1)

人生で初めてプログラミングをするときに、最初に解きたい問題の 1 つ 問題へのリンク 問題概要 JOI 君の 1 年前の身長は cm であった。JOI 君の今の身長は cm である。 身長はどれだけ伸びたか? 解法 身長の伸びは、 cm です。 整数値 を受け取る整数型変…

JOI 一次予選 2022 (第 2 回) D - 希少な数 (6Q, 難易度 2)

集計処理の面白い問題! 問題へのリンク 問題概要 長さ の数列 が与えられる。 に出現する整数のうち、出現回数が最小である整数を出力せよ。そのようなものが複数あるときは、そのうちの最小の整数を出力せよ。 制約 解法 このような出現頻度に関する問題で…

JOI 一次予選 2022 (第 2 回) C - 次の文字 (7Q, 難易度 2)

for 文を回しながら、「次の要素」も同時に見ていくという実装! 問題へのリンク 問題概要 文字 J, O, I からなる長さ の文字列 が与えられる。 について、 の 文字目が J であるとき、 の 文字目を出力せよ。 制約 解法 for 文を回しながら、 文字目の次の…

JOI 一次予選 2022 (第 2 回) B - 短針 (7Q, 難易度 1)

シミュレーションしてもいいし、数学的に綺麗に解くこともできる! 問題へのリンク 問題概要 時計は 1 〜 12 を繰り返す。 時の 時間後は、何時であるかを答えよ。 制約 解法 (1):シミュレーション から出発して、 回以下のことを繰り返せばよい。 1 増やす…

JOI 一次予選 2022 (第 1 回) D - 箱と鍵 (6Q, 難易度 3)

一見難しく見えるけど、実は単純な問題! 問題へのリンク 問題概要 整数 の書かれた 個の宝箱と、整数 の書かれた 個の鍵がある。 宝箱 は整数 が書かれた鍵を使うことで解錠できる。同じ鍵を使って複数の宝箱を解錠してもよい。 解錠できる宝箱の個数の最大…

JOI 一次予選 2022 (第 1 回) C - 複雑な文字列 (7Q, 難易度 2)

JOI は教育的な問題が多いね。 問題へのリンク 問題概要 文字 A, B, C, D, E のいずれかからなる文字列 が与えられる。 に 3 種類以上の文字列が登場するならば Yes、そうでないならば No を出力せよ。 解法 次のような 5 個の変数を用意しましょう! (変数…

AtCoder ABC 346 A - Adjacent Product (7Q, 灰色, 100 点)

for 文を回しながら、隣接要素を見ていく練習をしよう! 問題へのリンク 問題概要 個の整数 が与えられる。 に対して、 の値を順に求めよ。 制約 考えたこと for 文を回しながら、隣の要素も同時に見ていくスキルを習得しよう! コード #include <bits/stdc++.h> using name</bits/stdc++.h>…

JOI 一次予選 2022 (第 1 回) B - 移動 (8Q, 難易度 1)

少し数学を頑張ろう! 問題へのリンク 問題概要 A 地点から B 地点に移動するのに 時間,B 地点から C 地点に移動するのに 時間かかる。 A 地点から B 地点を経由して C 地点に移動するとき、 時間 30 分以内に移動することができるか判定せよ。 制約 解法 …

AtCoder ABC 347 A - Divisible (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 個の整数 が与えられる。 これらのうち、 で割り切れるものについて、 で割った値を順に出力せよ。 考えたこと 入力を配列 (C++ ならば vector 型など) で受け取り、for 文を使って配列の各要素にアクセスしていこう…

AtCoder ABC 348 A - Penalty Kick (8Q, 灰色, 100 点)

ooxooxooxoox... を出力する問題 問題へのリンク 問題概要 髙橋君はサッカーの試合で 回ペナルティキックを蹴る。3 の倍数回目は失敗する。 回分のキックの結果を出力せよ。 解法 for 文を用いて、 について が 3 の倍数のとき:文字 'x' を出力 そうでない…

AtCoder ABC 349 A - Zero Sum Game (7Q, 灰色, 100 点)

数学の部分を乗り越えることが難しいかもしれない。 問題へのリンク 問題概要 人 が、一対一の勝敗のつくゲームを何度か行った。 人の最初の持ち点は 0 点である。 各ゲームでは勝者の持ち点が 1 増え、敗者の持ち点が 1 減る。(持ち点が負になることもある…

JOI 一次予選 2023 (第 3 回) D - マラソン大会 (6Q, 難易度 2)

愚直に数えるのが簡単だと思う。 問題へのリンク 問題概要 人の生徒のマラソン大会のタイム が与えられる。 各生徒の順位を求めよ。具体的には各生徒 について、( 未満のタイムの個数) + 1 を求めよ。 制約 解法 各 に対して、具体的に「( 未満のタイムの個…

JOI 一次予選 2023 (第 3 回) C - JOI エディタ (7Q, 難易度 2)

意外と難しいかもしれない。for 文を回しながら、「前の文字」を見る技術を手に入れよう! 問題へのリンク 問題概要 文字 j, o, i からなる長さ の文字列 が与えられる。 この文字列をテキストエディタに打ち込むことを考える。同じ文字が 2 個連続したとき…

JOI 一次予選 2023 (第 3 回) B - 11 月 (9Q, 難易度 1)

文字式と、if 文の練習! 問題へのリンク 問題概要 2022 年 11 月 日の 週間後が 11 月 30 日以前ならば 1 を出力し、そうでなければ 0 を出力せよ。 解法 11 月 日の 週間後は、11 月換算で 日 となる。これが 30 以下であるかどうかを判定すればよい。 コ…

JOI 一次予選 2023 (第 3 回) A - 2 桁の整数 (9Q, 難易度 1)

十の位と一の位から、整数値を求めよう。 問題へのリンク 問題概要 2 つの整数 が与えられる。 十の位が 、一の位が であるような 2 桁の正の整数を求めよ。 制約 考えたこと このような問いは、中学数学でよく学ぶ。 一般に、十の位が 、一の位が であるよ…

JOI 一次予選 2023 (第 2 回) D - 点数 (6Q, 難易度 2)

「検索」をしながらのシミュレーション! 問題へのリンク 問題概要 長さ の数列 と、長さ の数列 が与えられる。 回のゲームをする。最初の得点は 0 点である。 回目のゲームでは、得点が 点増加する。ただし、増加したあとの得点が、もし数列 の中に含まれ…

JOI 一次予選 2023 (第 2 回) C - 繰り返し文字列 (7Q, 難易度 1)

for 文の練習問題! 問題へのリンク 問題概要 英小文字からなる長さ の文字列 が与えられる。 は偶数である。 が「同じ文字列を 2 回繰り返したもの」であるかどうかを判定せよ。 制約 考えたこと 文字列 を前後で半分に割ると 文字ずつになる。よって、次の…

JOI 一次予選 2023 (第 2 回) B - 三方比較 (8Q, 難易度 1)

if 文の練習! 問題へのリンク 問題概要 2 個の整数 が与えられる。 ならば、-1 ならば、0 ならば、1 を出力せよ。 考えたこと if 文や、if-else 文で処理できる。 コード #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; if (A < B)</bits/stdc++.h>…

JOI 一次予選 2023 (第 1 回) D - 二人三脚 (6Q, 難易度 2)

バケットや集計処理の基本問題! 問題へのリンク 問題概要 を 2 個ずつ集めてできる 個の整数から、1 個の整数を除外した。 そうした 個の整数を並べてできる数列 が与えられる。 最初に除外した整数の値を答えよ。 制約 解法 このくらいの難易度の問題から…

JOI 一次予選 2023 (第 1 回) C - 3 つの箱 (7Q, 難易度 2)

問題文に言われた通りにシミュレーションする問題! 問題へのリンク 問題概要 長さ の文字列 があって、各文字は 'L' または 'R' である。 また、1 つのボールと、ボールを入れることができる箱 があって、最初ボールは箱 1 に入っている。文字列 の文字を順…

JOI 一次予選 2023 (第 1 回) B - ゾロ目 (8Q, 難易度 1)

数値を文字列型で受け取るのが楽だと思われる。 問題へのリンク 問題概要 2 桁の整数 が与えられる。 がゾロ目であるかどうかを判定せよ。 解法 (1): を文字列型で受け取る 最も楽だと思われる方法は、 の値を文字列型で受け取ることだと思われる。たとえば…

JOI 一次予選 2023 (第 1 回) A - 長方形 (10Q, 難易度 1)

その日プログラミングを始めたばかりの方にオススメの問題! 問題へのリンク 問題概要 縦の辺の長さが cm、横の辺の長さが cm である長方形の面積は何 cm² か? 考えたこと 答えは です。プログラムでは、 に対応する整数型変数 (たとえば A, B) を用意して…