2024-03-01から1ヶ月間の記事一覧
とても典型的で教育的な「燃やす埋める」の練習問題! 問題へのリンク 問題概要 枚のカード があり、カード を使用するには だけコストがかかる。 一方、いくつかのカードを使用した場合、次の 種類のボーナス があり、ボーナス をクリアすると だけスコアを…
面白かった。JOI でもありそうな問題。長方形を 3 枚並べるのは典型らしい。 問題へのリンク 問題概要 のグリッドがあって、各マス には数値 が描かれている。 このグリッド上で の正方形を重ならないように 3 枚並べるとき、これらの正方形に覆われたマスの…
辞書順という言葉は聞きなれないかもしれないが、ここでマスターしよう! 問題へのリンク 問題概要 文字列 が与えられる。 が よりも辞書順で小さいならば "Yes" を出力し、そうでなければ "No" を出力せよ。 解法 辞書順とは、その名の通り「辞書に出てくる…
これは C++ よりも C で書いた方が楽かもしれない! 問題へのリンク 問題概要 "15.3" のような形式で、小数点第一位まで示された小数が与えられる。 小数第一位の値が 0 以上 2 以下ならば、整数部分に "-" をつけて(たとえば "15-") 小数第一位の値が 3 以…
if 文と、文字列の練習 問題へのリンク 問題概要 文字列 が与えられる。 が文字列 "Hello,World!" と完全に一致するならば "AC" と出力し、そうでなければ "WA" と出力せよ。 解法 文字列 が ""Hello,World!" と完全に一致するかどうかは if (S == "Hello,Wo…
基本情報科目 B でもよく出題されるテーマですね! 問題へのリンク 問題概要 整数値 () が与えられる。 ならば、4 ならば、6 ならば、8 を出力せよ。 解法 if 文のほどよい練習問題!! #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; if (N </bits/stdc++.h>…
if 文を上手に使おう! 問題へのリンク 問題概要 グラムの純金と、 グラムの純銀を混ぜる かつ のときは "Gold" かつ のときは "Silver" かつ のときは "Alloy" と出力せよ。 解法 問題文に書いてある通りに判定しよう。最後の "Alloy" の判定は else のみで…
double 型変数の練習! 問題へのリンク 問題概要 2 つの数 が与えられる。 の値を出力せよ。なお、絶対誤差または相対誤差が 以下であれば正解とみなされる。 解法 普段は整数型を扱うことが多いけど、今回は浮動小数点型を扱おう。そして、小数点以下 位以…
基本情報などでもよく問われる構造の問題! 問題へのリンク 問題概要 キャベツ 1 個を 円で買える。ただし、 個以上買う場合は 1 個 円で買える ()。 キャベツを 個買うときの価格を求めよ。 解法 である場合 最初の 個の分: 円 残りの 個の分: 円 である…
ABS の筆頭に登場する問題。整数型変数と文字列型変数の入力を受け取って、出力する練習をする問題。 問題へのリンク 問題概要 整数 と、文字列 が次の形式で標準入力で与えられます。 a b c s の計算結果と、文字列 を一行に並べて表示せよ。 解法 言語によ…
とても教育的な問題! 問題へのリンク 問題概要 整数 が与えられる。 以上 以下の整数は何個あるか? 解法 まず、 の場合は、 以上 以下の整数は存在しないことに注意しよう。この場合は 0 個と答えれば良い。 それでは、 としよう。この場合は、 以上 以下…
「この数からこの数の間の数はすべて作れる」という考え方をする問題。この考え方は、より高度な問題では頻出! 問題へのリンク 問題概要 1〜6 の目が出るサイコロを 回振った。 出た目の総和が になることがありうるかどうかを判定せよ。 解法 これは難しい…
頭を柔らかくして考えよう。 問題へのリンク 問題概要 3 個の整数 から 2 個選んで和をとる。 この和の最大値を求めよ。 解法 3 個の整数 から 2 個選んだ和は の 3 通りがある。これらの最大値を求めればよい。 #include <bits/stdc++.h> using namespace std; int main() </bits/stdc++.h>…
出力がややこしい...... 問題へのリンク 問題概要 税抜価格が 円の品物に対して、消費税 8% を乗せた税込価格と 206 円との大小比較をせよ。 (出力形式はリンク先から) 解法 税込価格は (int)(1.08 * N) で求めることができる。 #include <bits/stdc++.h> using namespace s</bits/stdc++.h>…
算数ではよくある「比」の問題 問題へのリンク 問題概要 100mL あたり kcal のドリンクがある。 mL で何 kcal でしょうか? 解法 求めるカロリーを kcal とする。比で表すと、次のようになる。 内項の積と外項の積は等しいから、 よって、 と求められる。 今…
ジャンケンの問題。何気に将来非常によく出てくる構造を問う問題でもある。 問題へのリンク 問題概要 3 人でジャンケンをしたらあいこになった。3 人のうちの 2 人の出した手がわかっている。残り 1 人の手を答えよ。 なお、0 はグー、1 はチョキ、2 はパー…
慎重に場合分けしよう! 問題へのリンク 問題概要 3 個の整数 が与えられる。 これらのうち 2 個が等しい場合には、残りの 1 個の整数を答えよ。 3 個すべて互いに相異なる場合には、0 と答えよ。 解法 3 個の整数 のうち、2 個が等しいというのは、次の 3 …
算数! 問題へのリンク 問題概要 サイコロの 6 面のうち、3 面の数 が見えている。 隠れている残り 3 面の数の和を求めよ。 解法 6 面の数の和は なので、これから を引けばよい。 #include <bits/stdc++.h> using namespace std; int main() { int a, b, c; cin >> a >> b </bits/stdc++.h>…
コンテスト中には通しきれなかった。流石に疲れていて頭が働かなかった......これはメモ代わりに記す。 問題へのリンク 問題概要 整数値 が等確率で出てくるルーレットがある。 先手と後手が交互にルーレットを回す すべての整数値が揃ったら終了である すで…
切り上げ処理の問題! 問題へのリンク 問題概要 西暦 年は何世紀ですか? 解法 のとき、2 世紀 のとき、21 世紀 というように、 を 100 で割ったときの余りを切り上げたものが答えとなる。 これは、(N + 100 - 1) / 100 によって求められる。ここがピンと来…
不等式を頑張って実装! 問題へのリンク 問題概要 3 個の整数 が与えられる。 であるかどうかを判定せよ。 解法 if (A * A + B * B < C * C) によって判定できる。 #include <bits/stdc++.h> using namespace std; int main() { int A, B, C; cin >> A >> B >> C; if (A * A</bits/stdc++.h>…
実はすごく簡単なのだが、戸惑うかもしれない。 問題へのリンク 問題概要 個のものを A 君と B 君で分け合う。 A 君も B 君も 1 個以上もらうようにするとき、分け方は何通りあるか? 解法 次の 通りある。 A 君: 個、B 君: 個 A 君: 個、B 君: 個 ... A…
文字列の練習 問題へのリンク 問題概要 長さ 3 の文字列 が与えられる。 の先頭の文字を末尾に移動してできる文字列を答えよ。 解法 文字 S[1]、S[2]、S[0] をこの順に出力すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; cou</bits/stdc++.h>…
頑張って頭を整理しよう! 問題へのリンク 問題概要 整数 が与えられる。 , となるように整数 を選ぶとき、 の最大値を求めよ。 解法 を最大にするためには、 を最大にする を最小にする ようにすればよい。よって、 , のときに は最大であり、最大値は であ…
これは簡単! 剰余演算子「%」を確認しよう! 問題へのリンク 問題概要 2 個の整数 が与えられる。 が の倍数であるかどうかを判定せよ。 解法 が の倍数であるとは、 を で割った余りが 0 であるということです。 を で割った余りは H % M と書けます。 以…
問題文が複雑! 問題へのリンク 問題概要 日本において、アイス製品は次の 4 種類に大別されます。 乳固形分が 15 パーセント以上、乳脂肪分が 8 パーセント以上含まれるものを「アイスクリーム」とする 上に当てはまらず、乳固形分が 10 パーセント以上、乳…
割合を計算する問題! 問題へのリンク 問題概要 円のものが 円で売られた。何%引きか? 解法 答えは である。これを double 型などで計算して、小数点第 2〜3 位まで答えれば OK。 ここでは念の為に、小数点第 10 位まで出力した。 #include <bits/stdc++.h> using namespac</bits/stdc++.h>…
一見「切り上げ処理」が必要だが、実は要らない! 問題へのリンク 問題概要 コインが 枚ある。 よりも大きい最小の の倍数まで、あと何枚か? 解法 を 100 で割ったあまりを としよう。このとき、次の の倍数までは だけ必要である。たとえ、 が 100 で割り…
不等式の問題! 問題へのリンク 問題概要 高橋君の投げたボールは、速度 で移動し、 秒後から 秒後の間に消える。 ボールから m の位置にいる青木君にとって、ボールが消えていないかどうかを判定せよ。 解法 消えている条件を不等式で書くと、次のようにな…
これは整理するのが大変!!! 問題へのリンク 問題概要 高橋君は 個のアメを持っていて、青木君は 個のアメを持っている。 交互に自分のアメを食べていき、先に食べられなくなった方が負けである。 ならば高橋君が先手、 ならば青木君が後手。 どちらか勝つ…