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

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

鉄則本★2

鉄則本 A28 - Blackboard (5Q, ★2)

mod の練習。鉄則本の問題なので、コードのみ。 問題へのリンク 問題概要 最初、黒板に 0 という数が書かれている。以下の 回の操作を実行せよ。各操作では文字 と数 が与えられる。 = '+' のとき:黒板に書かれた数を、 を足した数に書き直す = '-' のとき…

鉄則本 A27 - Calculate GCD (4Q, ★2)

最大公約数。鉄則本の問題なので、コードのみ。 問題へのリンク 問題概要 2 つの正の整数 の最大公約数を求めよ。 制約 コード #include <bits/stdc++.h> using namespace std; long long GCD(long long x, long long y) { if (y == 0) return x; else return GCD(y, x % y)</bits/stdc++.h>…

鉄則本 A26 - Prime Check (5Q, ★2)

素数判定。鉄則本の問題なので、コードのみ。 問題へのリンク 問題概要 個の整数 がそれぞれ素数であるかどうかを判定せよ。 制約 コード #include <bits/stdc++.h> using namespace std; bool is_prime(int N) { if (N <= 1) return false; for (int x = 2; x * x <= N; x+</bits/stdc++.h>…

鉄則本 A16 - Dungeon 1 (4Q, ★2)

Frog 1 とほぼ同じ問題! 問題へのリンク 問題概要 あるダンジョンには 個の部屋があり、 と番号がついている。このダンジョンは一方通行であり、通路を介して 1 つ先または 2 つ先の部屋に移動することができる。各通路における移動時間は以下の通り。 部屋…

鉄則本 A53 - Priority Queue (3Q, ★2)

優先度付きキューを人生で初めて試すのにいい問題。 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。販売システムを模している。 クエリタイプ 1:価格が 円の商品が追加される クエリタイプ 2:今ある商品の…

鉄則本 A52 - Queue (4Q, ★2)

キューの使い方の確認! 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。行列管理システムを模している。 クエリタイプ 1:行列の最後尾に さんが並ぶ クエリタイプ 2:行列の先頭にいる人の名前を答える クエ…

鉄則本 A51 - Stack (4Q, ★2)

人生で最初に解きたいスタックの問題 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。 クエリタイプ 1: という題名の本を机の一番上に積む クエリタイプ 2:一番上に積まれている本の題名を答えよ クエリタイ…

鉄則本 A11 - Binary Search 1 (★2)

ここでは、lower_bound() を使って解いてみることにする。 問題へのリンク 問題概要 小さい順に並べられた配列 が与えられる。 値 が の中で何番目の要素の値であるかを求めよ。ただし、 の中に値 の要素は含まれているとする。 制約 考えたこと 実は単純な …

鉄則本 B06 - Lottery (4Q, ★2)

累積和をやって、その次にやる類題として、そりゃこれを出すよね!! って感じの問題ですね。 問題へのリンク 問題概要 回くじびきを引いた。 回目の結果は であった ( のときアタリ、 のときハズレ)。 次の 回のクエリに答えよ。 【クエリ】 が与えられるの…

鉄則本 A06 - How Many Guests? (4Q, ★2)

累積和に関する問題!! 問題へのリンク 問題概要 日間にわたるイベントを開催し、日 には 人が来場した。次の 回のクエリに答えよ。 【クエリ】 各クエリでは が与えられるので、 日目から 日目までの間に合計何人が来場したかを答えよ。 制約 解法 累積和…

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

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

鉄則本 B04 - Binary Representation 2 (6Q, ★2)

「十進法 → 二進法」変換。これも鉄則本公式解説とは異なる方法でやってみよう。 問題へのリンク editorial 問題概要 二進法で表記された整数 が与えられる。 整数 の十進法表記を求めよ。 解法 たとえば、二進法で表された整数 1101 は、十進法では、次のよ…

鉄則本 A04 - Binary Representation 1 (6Q, ★2)

ここでは鉄則本に乗っているのとは異なる方法でやってみよう! 問題へのリンク 問題概要 整数 が与えられる。 を二進法表記したものについて、先頭を 0 埋めすることで 10 桁で答えよ。 解法:二進法とは 整数 を二進法で表したときの各桁の値が求められれば…

鉄則本 B03 - Supermarket 1 (6Q, ★2)

「組」を全探索する問題! 問題へのリンク 問題概要 個の整数 から 3 個選んで、その和を 1000 にすることが可能かどうかを判定せよ。 解法 github.com コード #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<int> A(N); for (int i = 0; </int></bits/stdc++.h>…