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

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

算数と数学

AtCoder ABC 177 A - Don't be late (灰色, 100 点)

double 型を使いたくなる問題。実は使わなくても解ける。 問題へのリンク 問題概要 メートル離れた場所で待ち合わせがある。残り時間は 分である。 分速 メートルで向かうとき、待ち合わせ時間に間に合うか? 解法 分速 メートルで メートル進むのに要する時…

AtCoder ABC 176 A - Takoyaki (灰色, 100 点)

この手の「切り上げ処理」は、もう憶えてしまおう! 問題へのリンク 問題概要 個のたこ焼きを作りたい。 たこやきを作り始めてから、 秒おきに 個のたこ焼きを作る。 個のたこ焼きを作り切るのに最低何秒かかるか。 解法 たこやきを生産する回数は、次のよう…

AtCoder ABC 175 A - Rainy Season (灰色, 100 点)

ちょっと難しい問題。 問題へのリンク 問題概要 3 文字の 'R' と 'S' のみからなる文字列 が与えられる。 において、'R' が最大で何個連続しているかを答えよ。 解法 ありうる文字列は 通りあることに注意しよう。よって、すべての文字列を調べることができ…

AtCoder ABC 173 A - Payment (灰色, 100 点)

これはちょっと難しい。 問題へのリンク 問題概要 円の買い物をした。1000 円札のみを用いて支払うとき、お釣りはいくらになるか? 解法 まず、 が 1000 で割り切れるときは、お釣りはない。つまり、0 円である。 が 1000 で割り切れないときが少し難しい。…

AtCoder ABC 172 A - Calc (灰色, 100 点)

算数の素養は必要なく、ただ本当に計算式を実装する。 問題へのリンク 問題概要 整数 が与えられる。 の値を出力せよ。 解法 とは、 のことである。また、 とは、 のことである。 よって、 a + a * a + a * a * a の値を出力すればよい。 #include <bits/stdc++.h> using na</bits/stdc++.h>…

AtCoder ABC 168 A - ∴ (Therefore) (灰色, 100 点)

ちょっと一見面倒な問題。 問題へのリンク 問題概要 999 以下の正の整数 が与えられる。 解法 の一の位の値は N % 10 で取得できる。この値を調べればよい。 ここで、コツとして、if-else 文の最後の else のところが最も面倒なものが来るようにしよう。ここ…

AtCoder ABC 165 A - We Love Golf

色んな解法がある! この手の数値的なものに対して「全探索」という解法を選択肢に持てるようにしていこう。 問題へのリンク 問題概要 3 個の正の整数 が与えられる。次の条件を満たす整数が存在するかどうかを判定せよ。 の倍数である 以上 以下である 制約…

AtCoder ABC 159 A - The Number of Even Pairs (灰色, 100 点)

nC2 系の問題は ABC-D などで頻出だが、その練習ができる問題! 問題へのリンク 問題概要 偶数の書かれたボールが 個 奇数の書かれたボールが 個 あります。これら 個のボールから 2 個選んで、書かれた数の和をとります。 この和が偶数になるような選び方は…

AtCoder ABC 157 A - Duplex Printing (灰色, 100 点)

この切り上げ処理はぜひ憶えておこう! 問題へのリンク 問題概要 高橋君は、全 ページから成る書類を両面印刷する。両面印刷では、1 枚の紙に 2 ページ分のデータを印刷することができる。 最小で何枚の紙が必要か求めよ。 解法 が偶数のときは、 は 2 で割…

AtCoder ABC 156 A - Beginner (灰色, 100 点)

ちょっとした式変形のスキルも要求される。 問題へのリンク 問題概要 コンテストの参加回数 、表示レーティングは次のようになる。 のとき:内部レーティングに一致する のとき:内部レーティングから を引いた値となる 高橋君のコンテスト参加回数が で表示…

AtCoder ABC 155 A - Poor (灰色, 100 点)

これは結構難しい。いろんな解法がある。 問題へのリンク 問題概要 個の整数 が与えられる。 これらのうち 2 個の値が等しく、残りの 1 個の値がそれらと異なるならば "Yes" を出力せよ。そうでなければ "No" を出力せよ。 解法 ABC-A の前提知識ではないが…

AtCoder ABC 153 A - Serval vs Monster (灰色, 100 点)

これはとても教育的な問題!! 問題へのリンク 問題概要 HP が であるモンスターとサーバルは戦っている。 1 回の攻撃で HP を だけ減らすことができる。HP が 0 以下になるのに必要な攻撃回数を求めよ。 解法 (1) を で割ったときに、余りがあるならば追加…

AtCoder ABC 148 A - Round One (灰色, 100 点)

発想ゲー。 問題へのリンク 問題概要 1, 2, 3 のうちの 2 つの整数 が与えられる。 残りの整数を答えよ。 解法 色んな解法が考えられる。 の値で場合分けして解くこともできる。 しかし、最も簡単なのは、合計値が なのだから、そこから と を引く方法であろ…

AtCoder ABC 145 A - Circle (灰色, 100 点)

ちょっと図形問題! でも、サンプルから法則を見つける解き方もできそう。 問題へのリンク 問題概要 半径 の円の面積が、半径 1 の円の面積の何倍であるかを答えよ。 解法 1:円の面積の公式 半径 の円の面積は である。これに対して、半径 の円の面積は、 …

AtCoder ABC 143 A - Curtain (灰色, 100 点)

また、関数 max() が使える案件。 問題へのリンク 問題概要 横の長さが であるカーテンレールに、横の長さが であるカーテン 2 枚を設置する。 カーテンレールのうち、カーテンが設置されていない部分の長さの最小値を求めよ。 解法 2 枚のカーテンを重なら…

AtCoder ABC 142 A - Odds of Oddness (灰色, 100 点)

いい感じの複合問題。この時期の ABC-A としては少し難しめ。 問題へのリンク 問題概要 正の整数 が与えられる。 以上 以下の整数をランダムに選ぶとき、それが奇数である確率を求めよ。 解法 以上 以下の 個の整数のうち、奇数の個数を とすると、求める確…

AtCoder ABC 140 A - Password (灰色, 100 点)

「場合の数」の問題! 問題へのリンク 問題概要 3 桁の整数のうち、各桁の値が 1 以上 以下の整数であるものの個数を求めよ。 制約 解法 各桁ごとに 通りの選択肢があるので、3 桁の整数は 通り 考えられます。 これは重複順列などと呼ばれている考え方です…

AtCoder ABC 136 A - Transfer (灰色, 100 点)

if 文を使うか、関数 max() を使えば OK 問題へのリンク 問題概要 水を入れる容器が 2 つある。 容器 1 には水を ミリリットルまで入れることができ、水が ミリリットル入っている。 容器 2 には水が ミリリットル入っている。 容器 2 から容器 1 に入るだけ…

AtCoder ABC 135 A - Harmony (灰色, 100 点)

これは難しい! 問題へのリンク 問題概要 2 個の整数 が与えられる。 を満たすような整数 が存在すればそれを答えて、存在しない場合には "IMPOSSIBLE" と答えよ。 解法 これは難しい。結論から言えば、 は整数でなくてもよいならば、 の平均値 となる。下図…

AtCoder ABC 134 A - Dodecagon (灰色, 100 点)

これは本当に言われたとおりにやるだけ! 問題へのリンク 問題概要 整数 の値が与えられるので、 の値を答えてください。 解法 標準入力を用いて r の値を受け取り、3 * r * r の値を出力すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { int r; ci</bits/stdc++.h>…

AtCoder ABC 129 A - Airplane (灰色, 100 点)

この頃によくあった 3 個の入力をどうのこうのする系! 問題へのリンク 問題概要 3 つの空港 A, B, C がある。 A-B 間の移動の所要時間は B-C 間の移動の所要時間は A-C 間の移動の所要時間は 今、これらの空港を順に訪れる (たとえば、B → A → C)。最短の所…

AtCoder ABC 128 A - Apple Pie (灰色, 100 点)

ちょっと整理が難しい文章題。 問題へのリンク 問題概要 りんごが 個、りんごの欠片が 個ある。 1 個のりんごを砕くと、りんごの欠片が 個できる 2 個のりんごの欠片を使うと、アップルパイが 1 個できる 今ある材料から、最大で何個のアップルパイが作れる…

AtCoder ABC 125 A - Biscuit Generator (灰色, 100 点)

という表現が何を言っているんだ......と戸惑うかもしれない。これは、要は「ちょうど 秒後」も含むよということを言っている。 問題へのリンク 問題概要 ビスケット起動装置を起動してから、 秒後にそれぞれビスケットを 枚生成する。 起動してから 秒間の…

AtCoder ABC 123 A - Five Antennas (灰色, 100 点)

ちょっと数学的な部分が難しい問題かもしれない。 問題へのリンク 問題概要 5 つのアンテナがこの順に一直線上に並んでいて、それぞれ座標値は () である。 2 つのアンテナは、距離が 以内であるとき、通信できる。 これらのアンテナの組であって、通信でき…

AtCoder ARC 171 A - No Attacking (茶色, 400 点)

慎重に解いた。ノーペナで解けたのは収穫。 問題へのリンク 問題概要 のグリッドに、以下の条件を満たすように 個のルークと 個のポーンを配置することが可能かどうかを判定せよ (ルークとポーンを合わせて駒と呼ぶ)。 どのルークについても、それと同じ行・…

AtCoder ABC 121 A - White Cells (灰色, 100 点)

過去に似た問題があった。その応用問題と言える。 問題へのリンク 問題概要 の白色のマス目がある。 行と 列を選んで、すべて黒色に塗った。 白色のマス目は何個残るか。 解法 白い部分をかき集めると、 の長方形となる。 #include <bits/stdc++.h> using namespace std; in</bits/stdc++.h>…

AtCoder ABC 120 A - Favorite Sound (灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもいい 問題へのリンク 問題概要 買いたいものがある。 円で 1 個買うことができる。 円持っている。 ただし、 個以上は要らない。何個買えるか。 解法 最後の「 個以上は要らない」がなければ、B / A が答えとな…

AtCoder ABC 118 A - B +/- A (灰色, 100 点)

倍数判定は演算子「%」を用いる! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が の約数ならば の値を出力し、そうでないならば の値を出力せよ。 解法 が の約数 (言い換えると、 が で割り切れる) であるかどうかは、 if (B % A == 0) という…

AtCoder ABC 117 A - Entrance Examination (灰色, 100 点)

設定が結構難しく感じるかもしれない。実際の問いかけはとても簡単。 問題へのリンク 問題概要 世界 B で 時間進む間に、世界 A では 時間進む。 世界 B で 時間進む間に、世界 A では何時間進むかを求めよ。 解法 「世界 B での経過時間」を で割れば、「世…

AtCoder ABC 116 A - Right Triangle (灰色, 100 点)

直角三角形の面積を求める問題。 問題へのリンク 問題概要 ∠ ABC = 90° の直角三角形がある。 辺 AB, BC, CA の長さが与えられるので、直角三角形の面積を求めよ。 解法 直角を挟む二辺は、AB, BC であるから、面積は と計算できる。 実装するときには、整数…