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

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

そのまま覚えたい易しい教育的典型問題

AtCoder ABC 109 A - ABC33 (灰色, 100 点)

パリティの問題。ここのところ、算数や数学の問題が続いている。 問題へのリンク 問題概要 1 以上 3 以下の整数 が与えられる。 が奇数 となるような 1 以上 3 以下の整数 が存在するかどうかを判定せよ。 解法 一般に、かけ算をするとき 偶数が 1 個でも含…

AtCoder ABC 108 A - Pair (灰色, 100 点)

「場合の数」の問題! 問題へのリンク 問題概要 1 以上 以下の正の整数から、偶数と奇数ひとつずつの組を選ぶ方法の個数を求めてください。 なお、選ぶ順番は考慮しません。 解法 まず、1 以上 以下の整数のうち、偶数の個数は K / 2 個である。よって奇数の…

AtCoder ABC 105 A - AtCoder Crackers (灰色, 100 点)

分配に関する面白い問題! 問題へのリンク 問題概要 枚のせんべいを 人に配る。 「最も多くのせんべいをもらった人」と「最も少ないせんべいをもらった人」の、もらったせんべいの個数の差を求めよ。 解法 もし、 が で割り切れるならば、全員に公平に分配で…

AtCoder ABC 102 A - Multiple of 2 and N (灰色, 100 点)

整数問題! 問題へのリンク 問題概要 整数 が与えられる。 と の最小公倍数を求めよ。 解法 一般に最小公倍数を求める方法としてはユークリッドの互助法が知られている。しかし、今回は次のように簡単に考えられる。 が 2 の倍数のとき:最小公倍数は が 2 …

AtCoder ABC 089 A - Grouping 2 (灰色, 100 点)

3 人一組になる問題 問題へのリンク 問題概要 人がいる。 人が 1 グループになることができる。作れるグループの個数は最大何個か? 解法 を で割った商が答えとなる。その余りの人数だけ余ることになる。 #include <bits/stdc++.h> using namespace std; int main() { int </bits/stdc++.h>…

AtCoder ABC 071 A - Meal Delivery (灰色, 100 点)

整数 の差は、絶対値記号を用いて と表せる。絶対値は、たとえば C++ では関数 abs() が使える! 問題へのリンク 問題概要 座標軸上で、店 A, B がそれぞれ座標 にある。 今、すぬけ君は座標 の地点にいる。すぬけ君にとって、店 A, B のどちらに近いかを判…

AtCoder ABC 066 A - ringring (灰色, 100 点)

この時代の ABC にありがちな「3 つの入力」を扱う系の問題 問題へのリンク 問題概要 3 つの整数 が与えられる。 これらの整数から 2 つ選んで足した値の最小値を求めよ。 解法 関数 min() を使うのが楽だと思う。3 つから 2 つ選んだ和は の 3 パターンがな…

AtCoder ABC 330 A - Counting Passes (灰色, 100 点)

最近、易しめのいい感じの A 問題多いね! 問題へのリンク 問題概要 個の整数 のうち、 以上であるものの個数を求めよ。 解法 配列を使って入力を受け取って、for 文を使って配列の要素を 1 個 1 個見ていけばいい。 #include <bits/stdc++.h> using namespace std; int mai</bits/stdc++.h>…

AtCoder ABC 329 D - Election Quick Report (灰色, 350 点)

「差分更新」の良い練習問題! 問題へのリンク 問題概要 以上 以下の整数からなる長さ の数列 が与えられる。 各 に対して、 の中で最も多く登場する値を答えよ。複数個ある場合はそのうちの最小の値を答えよ。 制約 考えたこと この問題のように、各 に対し…

AtCoder ABC 329 B - Next (灰色, 200 点)

昔の ABC B 問題って感じ! 問題へのリンク 問題概要 長さ の数列 が与えられる。すべての値が等しいわけではないことが保証される。 これらのうち、最大値でない中での最大値を求めよ。 解法 まず for 文を回すなどして、 個の値 の最大値を求める。たとえ…

AtCoder ABC 305 A - Water Station (灰色, 100 点)

この処理は今後めっちゃ頻出なので、スラスラ書けるようになっておきたい! 問題へのリンク 問題概要 正の整数 が与えられる。 に最も近い 5 の倍数を求めよ。 解法 たとえば としてみよう。5 の倍数は 0, 5, 10, 15, 20, 25, 30, 35, 40, ... と続いていく…

AtCoder ABC 328 A - Not Too Hard (灰色, 100 点)

これは A 問題らしい A 問題 問題へのリンク 問題概要 個の整数 のうち、 以下のものの総和を求めよ。 コード for 文を回していき、 以下であるかを判定して、 以下であるものを足していけば OK。 #include <bits/stdc++.h> using namespace std; int main() { int N, X; ci</bits/stdc++.h>…

AtCoder ABC 328 C - Consecutive (灰色, 300 点)

すごくよく似た過去問がある。これ → ABC 122 C - GeT AC 問題へのリンク 問題概要 英小文字からなる長さ の文字列 が与えられる。この文字列に対する次の 個のクエリに答えよ。 各クエリでは、文字列の区間 が与えられる。この区間を取り出した部分文字列に…

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

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

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

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

AtCoder ABC 324 A - Same (灰色, 100 点)

これも条件をうまく言い換えることが大切になる問題 問題へのリンク 問題概要 個の整数 が与えられる。 これらの値がすべて等しいかどうかを判定せよ。 コード すごく色んな解法がある!!!! 個人的に最も楽だと思うのは、 に対して、 ならば Yes そうでな…

AtCoder ABC 322 A - First ABC 2 (灰色, 100 点)

「連続文字列」を処理する典型問題。 問題へのリンク 問題概要 文字 A, B, C のみからなる長さ の文字列 が与えられる。 文字列 に含まれる連続部分文字列 "ABC" のうち、それが始まる最小の添字を答えよ。"ABC" を含まない場合は -1 を出力せよ。 解法 (1)…

AtCoder ABC 321 A - 321-like Checker (灰色, 100 点)

入力を文字列として受け取ってしまうのが楽だと思う! 問題へのリンク 問題概要 各桁の値が単調減少 (等しいはダメ) になっている数を 321-like 数と呼ぶことにする。 たとえば、971 や 5 は 321-like 数であるが、978 や 988 は 321-like 数ではない。 与え…

AtCoder ABC 313 A - To Be Saikyo (灰色, 100 点)

トップタイがある場合に注意! 問題へのリンク 問題概要 (0 始まりに表現改) 人の人 がいる。人 のプログラミング力は である。 人 は必要に応じてプログラミング力を鍛えることで、 人の中で単独トップになろうとしている。 そのためにプログラミング力をい…

AtCoder ABC 311 A - First ABC (灰色, 100 点)

フラグ変数を 3 個持ってもいいし、set 型を使ってもいい 問題へのリンク 問題概要 文字 'A', 'B', 'C' のみからなる、長さ の文字列 が与えられます。 S を左から 1 文字ずつ見ていったときに、はじめて「A, B, C がすべて 1 回以上出現している」という条…

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

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

AtCoder ABC 276 B - Adjacency List (灰色, 200 点)

人生で初めて解くとよいグラフの問題という感じ! 問題へのリンク 問題概要 頂点数 、辺数 の単純な無向グラフが与えられます。 番目の辺は、頂点 と頂点 を結んでいます。 各頂点 に対して、頂点 に隣接する頂点を小さい順に出力してください。 制約 解法 …

AtCoder ABC 213 A - Bitwise Exclusive Or (100 点)

XOR は 2 回やると元に戻る!!!(素振り!) 問題へのリンク 問題概要 非負整数 が与えられます。 ^ = を満たす整数 を求めてください。 制約 XOR とは XOR 演算は、AND と OR と同じく、ビット (整数) 同士で定義される演算です。ビットについては次の記事…

AtCoder ABC 106 B - 105 (灰色, 200 点)

E8君問題集の第2問 問題へのリンク 問題概要 正の整数 が与えられる。 以上 以下の整数のうち、約数の個数がちょうど 8 個あるものが何個あるかを求めよ。 制約 考えたこと 単純に 1 から までの整数それぞれについて、 約数をすべて求めて それが 8 個かど…

AtCoder ABC 142 C - Go To School (灰色, 300 点)

この問題で要求している処理を「前処理」として要求する問題はたくさんある!!! というわけで教育的な問題かもしれない。 問題へのリンク 問題概要 人の生徒がいて、出席番号 の生徒はそれぞれ、全体で 人目に登校していることがわかっている。 これらの情…

AtCoder ABC 051 B - Sum of Three Integers (灰色, 200 点)

代表的な全探索問題! 問題へのリンク 問題概要 2 つの整数 が与えられます。 3 つの 以上 以下の整数 の組であって、 を満たすものが何通りあるか求めよ。 制約 全探索 一目見てすごく数学色強そうで怖そうなのだけど、とりあえず答えを出すコードを求める…

AtCoder ABC 121 C - Energy Drink Collector (灰色, 300 点)

これでひとまず ABC 100 以降の CD 問題は全部書けた 問題へのリンク 問題概要 個のお店があって、各店 では 1 本 円のエナジードリンクを 本まで買うことができる。 全部で 本のドリンクを買いたい。最小で何円で実現できるか? 制約 考えたこと 基本的に安…

AtCoder ABC 115 C - Christmas Eve (灰色, 300 点)

今の 300 点に比べると少し易しめで、でも 300 点っぽくていい感じだなと。 問題へのリンク 問題概要 個の整数 が与えられる。ここから 個の整数を選ぶ。 「選ばれた数の最大値と最小値の差」の最小値を求めよ。 制約 < 考えたこと すごく 300 点問題っぽく…

AtCoder ABC 124 B - Great Ocean View (灰色, 200 点)

こういうのが素早くストレスなく書けるようになるといい感じな気がする 問題へのリンク 問題概要 海から順番に建物 があって、それぞれの高さは である。 海が見える建物が何個あるかを求めよ。なお、 番目の建物から海が見えるとは より前の 番目の建物より…

AtCoder ABC 124 A - Buttons (灰色, 100 点)

たったこれだけの問題でも、学ぶべきことがすごくあるイメージ!!! 問題へのリンク 問題概要 2 つのボタンがあってそれぞれ大きさが である。 大きさ のボタンを押すとコインが 円もらえて、ボタンの大きさが 1 減って になる。 2 回だけ好きなボタンを押…