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

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

入力が定数個

AOJ 2997 Horizontal-Vertical Permutation (JAG 夏合宿 2019 day3-J) (4D)

たまたま作れた!!! 個人的傑作の自作構築問題。 問題へのリンク editorials 問題概要 正の整数 が与えられる。 のマス目に 1 以上 以下の整数を入れる方法であって、次の条件を満たすものを構築せよ。 【条件】 について、 行目または 列目のマスは 個あ…

AtCoder ABC 380 A - 123233 (7Q, 灰色, 100 点)

ソートが使えるなら、それが楽だと思う 問題へのリンク 問題概要 6 桁の正の整数 が与えられる。 が次の条件を満たすかどうかを判定せよ。 1 をちょうど 1 個含む 2 をちょうど 2 個含む 3 をちょうど 3 個含む 解法 (1):1, 2, 3 の個数を数える方法 for 文…

AtCoder ABC 378 A - Pairing (6Q, 灰色, 100 点)

これ意外と難しいと思う! 問題へのリンク 問題概要 4 個の整数 (1, 2, 3, 4 のいずれか) が与えられる。これら整数に対して、 「2 個同じ整数があったら 2 個まとめて消す」 という操作を最大で何回できるか? 考えたこと 整理が大変だけど、色んな解法があ…

AtCoder ABC 333 B - Pentagon (6Q, 灰色, 200 点)

ちょっとした算数・数学の問題! 問題へのリンク 問題概要 考えたこと A, B, C, D, E をそれぞれ 0, 1, 2, 3, 4 と対応させよう(0 始まりにするのがコツ)。このとき、対角線の長さは、対角線の両端に対応する数値の差で表すことができる。 たとえば、線分 …

AtCoder ABC 059 D - Alice&Brown (ARC 072 D) (1D, 青色, 500 点)

面白かった!! 実験で思いつけるかもしれないし、気づいたら証明したい系。 問題へのリンク 問題概要 先手と後手が石取りゲームをする。2 個の山があって、最初それぞれ石が 個積まれている。交互に次の操作をする。 2 個以上の石が積まれている山を 1 つ選…

AtCoder ABC 059 B - Comparison (7Q, 灰色, 200 点)

巨大な整数値の大小比較の問題 問題へのリンク 問題概要 2 つの正の整数 (101 桁以下)が与えられるので、その大小比較をせよ。 考えたこと は 100 桁にも及ぶことがあるので、long long 型などで受け取ることもできない。そこで、string 型で受け取ろう。…

AtCoder ABC 055 C - Scc Puzzle (ARC 069 C) (5Q, 茶色, 300 点)

この時代多く見られた「グルーピング」の問題! 問題へのリンク 問題概要 S 型ピース 1 個と c 型ピース 2 個を使って、下図のように Scc を 1 個作ることができる。 また、c 型ピース 2 個を使って S 型ピース 1 個を作ることもできる。 今、S 型ピースが …

AtCoder ABC 050 D - Xor Sum (ARC 066 D) (3D, 橙色, 600 点)

繰り上がりがあるから、ただの「桁 DP」よりは難しい。でも少しの工夫で解ける! 問題へのリンク 問題概要 1 個の正の整数 が与えられる。次の条件を満たす整数 が存在するような整数の組 の個数を 1000000007 で割った余りを求めよ。 xor = 制約 考えたこと…

AtCoder ABC 270 A - 1-2-4 Test (6Q, 灰色, 100 点)

背景に二進法がある問題! 問題へのリンク 問題概要 3 問の問題があって、それぞれ配点は 1 点、2 点、4 点である。 高橋君は 点、青木君は 点であった。すぬけ君は、高橋君が解けた問題は解けて、青木君が解けた問題も解けた。だが、高橋君も青木君も解けな…

AtCoder ABC 268 A - Five Integers (7Q, 灰色, 100 点)

ちょっと整理が難しいかもしれない。 問題へのリンク 問題概要 5 個の整数 が与えられる。これらの整数の中に何種類の整数があるかを答えよ。 考えたこと 次のように考える。なお、答えを格納する変数を res とする。 まず整数 のみを考えると、整数は 1 種…

AtCoder ABC 367 A - Shout Everyday (6Q, 灰色, 150 点)

ややこしいけど、落ち着いて考えればできる! 問題へのリンク 問題概要 AtCoder 王国の住民は 時になるとたこ焼きへの愛を叫ぶことになっている。 AtCoder 王国に住む高橋君は毎日 時に就寝し 時に起床する。 高橋君はたこ焼きへの愛を叫ぶことができている…

JOI 予選 2018 A - 鉛筆 (AOJ 0641) (8Q, 難易度 1)

切り上げ処理! 問題へのリンク 問題概要 鉛筆を 本以上買いたい。買うための手段として、次の 2 セットがある。いずれかのセットを選び、選んだセットをいくつか購入することとする。両方のセットを選ぶことはできない。 セット X:1 セットあたり 本あり、…

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

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

AtCoder ABC 250 A - Adjacent Squares (6Q, 灰色, 100 点)

グリッド上の問題を考えるときには、いつも大事になる処理! 問題へのリンク 問題概要 のグリッドがある。上から 行目、左から 列目のマスを考える。 このマスに辺で隣接するマスの個数を求めよ。 制約 考えたこと ここでは 0-indexed で考える。つまり、一…

AtCoder ABC 249 A - Jogging (6Q, 灰色, 100 点)

1 秒ごとにシミュレーションする方法と、数学的に 2 人の休憩時間をそれぞれ求める方法とがある。どちらもできるようにしておきたい! ここでは、数学的に処理する方法を書く。 問題へのリンク 問題概要 高橋君は「 秒間秒速 メートルで歩き、 秒間休む」こ…

AtCoder ABC 363 A - Piling Up (8Q, 灰色, 100 点)

レーティングネタ問題! 問題へのリンク 問題概要 1 以上 299 以下の整数 が与えられる。 よりも大きい最小の 100 の倍数から を引いた値を求めよ。 解法 (1):場合分けして解く 場合分けして考えてしまうのが確実かもしれない。 のとき: より大きい最小の …

AtCoder ABC 243 A - Shampoo (6Q, 灰色, 100 点)

シミュレーションで解くか、数学的に解こう! 問題へのリンク 問題概要 シャンプーが mL 余っている。 F さん、M さん、T さんが順に mL ずつ使っていく。最初にシャンプーが足りなくなる人が誰になるかを求めよ。 解法 (1):シミュレーション まずは、シャ…

AtCoder ABC 242 A - T-shirt (6Q, 灰色, 100 点)

確率を考えるための基礎となる問題! 問題へのリンク 問題概要 コンテストに 1000 人が参加した。 上位 位は、確実に T シャツがもらえる 上位 位から 位までは、その中からランダムに 人が選ばれて、T シャツがもらえる それ以外は、T シャツをもらえない …

AtCoder ABC 361 F - x = a^b (1D, 青色, 500 点)

包除原理した! 問題へのリンク 問題概要 1 以上 以下の正整数 であって、ある正整数 と 2 以上の正整数 を用いて と表現できるものはいくつありますか? 制約 考えたこと まず考えたのは、 は素数のみ考えれば良いということだった。たとえば、 というよう…

AtCoder ABC 307 E - Distinct Adjacent (1Q, 水色, 475 点)

共通テスト数学 IA にも似た問題が出ていた! 問題へのリンク 問題概要 頂点数が のサイクルグラフが与えられる。このグラフの各頂点を色 のいずれかの色で塗る。 どの隣接する頂点対も異なる色で塗られるようにする方法の個数を 998244353 で割った余りを求…

AtCoder ABC 357 C - Sierpinski carpet (4Q, 灰色, 250 点)

いろんな方法で実装できそう! 問題へのリンク 問題概要 非負整数 に対して、レベル のカーペットを再帰的に定義する。 レベル のカーペットは、"#" からなる 1 × 1 のグリッドである に対して、レベル のカーペットは のグリッドであり、 このグリッドを の…

AtCoder ABC 048 B - Between a and b ... (5Q, 灰色, 200 点)

制約が と大きいので、ちゃんと整数論的処理をしないといけない! 問題へのリンク 問題概要 以上 以下の整数のうち、 の倍数は何個あるか? 制約 考えたこと 制約が と極めて大きいので探索手法で解くことは難しい。数学的に求めることを考える。 まず、「 …

AtCoder ABC 205 E - White and Black Balls (2D, 黄色, 500 点)

カタラン数をわかっていればできる! 問題へのリンク 問題概要 正の整数 が与えられる。黒いボール 個と、白いボール 個を一列に並べる方法のうち、次の条件を満たすものの個数を 1000000007 で割った余りを求めよ。 【条件】 どの についても、列の左から …

AtCoder ABC 354 D - AtCoder Wallpaper (1D, 水色, 450 点)

周期性をうまいこと活用してなんとかする問題! 問題へのリンク 問題概要 座標平面上で下の図のような白黒模様が与えられる (問題文より)。 左下の頂点が 、右上の頂点が であるような長方形領域内部の黒色部分の面積 (の 2 倍) を求めよ。 制約 考えたこと …

鉄則本 A05 - Three Cards (5Q, ★2)

計算時間の意識が必要になる問題! 鉄則本の問題なのでメモ程度に。 問題へのリンク 問題概要 赤・青・白の 3 枚のカードがあり、それぞれに 1 以上 以下の整数を書き込む。 3 枚のカードの数の合計を にする書き方は何通りあるか? 制約 メモ 赤・青・白の…

AtCoder ARC 176 B - Simple Math 4 (1D, 水色, 400 点)

というコーナーケースにやられた! 問題へのリンク 問題概要 整数 が与えられる。 を で割った余りの一の位の値を求めよ。 (マルチテストケース) 制約 考えたこと まず最初に考えたのは「全体を で割った世界」で考えれば良いということ。 このことを正当化…

AtCoder ABC 208 A - Rolling Dice (7Q, 灰色, 100 点)

「この数からこの数の間の数はすべて作れる」という考え方をする問題。この考え方は、より高度な問題では頻出! 問題へのリンク 問題概要 1〜6 の目が出るサイコロを 回振った。 出た目の総和が になることがありうるかどうかを判定せよ。 解法 これは難しい…

AtCoder ABC 065 A - Expired? (7Q, 灰色, 100 点)

これはちゃんと整理するの大変だと思う! 問題へのリンク 問題概要 ある商品は、賞味期限を過ぎてから 日後まではお腹を壊さずに食べることができる。一方、賞味期限を過ぎてから食べると美味しくありません。 その商品を、賞味期限の 日前に購入し、その日…

AtCoder ABC 326 B - 326-like Numbers (6Q, 灰色, 200 点)

整数 が 326-like 数かどうかを判定する処理が書ければ、この問題は解ける。 問題へのリンク 問題概要 整数 が 326-like 数であるとは、3 桁の正の整数であって、百の位と十の位の積が一の位に等しいことをいう。 与えられた整数 以上の、最小の 326-like 数…

AtCoder ABC 326 A - 2UP3DOWN (7Q, 灰色, 100 点)

落ち着いて整理しよう! 問題へのリンク 問題概要 100 階のビルで 階から 階へと移動したい。 2 階分までの上り、または、3 階分までの下りであれば移動には階段を使い、そうでないときエレベーターを使う。 階段を使うかどうかを判定せよ。 コード 落ち着い…