Yes/No判定問題
ソートが使えるなら、それが楽だと思う 問題へのリンク 問題概要 6 桁の正の整数 が与えられる。 が次の条件を満たすかどうかを判定せよ。 1 をちょうど 1 個含む 2 をちょうど 2 個含む 3 をちょうど 3 個含む 解法 (1):1, 2, 3 の個数を数える方法 for 文…
久しぶりに高難易度問題を解いてみた! 問題へのリンク 問題概要 各マスの値が 0 または 1 である グリッドを考える。 グリッド のマス が「固定されている」とは、次の条件を満たすすべての グリッドについて、マス の値が一意に決まることをいう。 すべて…
座標ごとに情報を整理するのは頻出! 問題へのリンク 問題概要 x-y 座標平面上に 人がいる。それぞれ座標 の位置にいて、左右いずれかを向いている(各人が左右どちらを向いているかは文字列 で与えられる)。 各人が、その位置から、向いている方向に向かっ…
set の練習! 問題へのリンク 問題概要 二次元平面上に高橋君がいる。高橋君は原点から移動を 回行った。 回の移動は長さ の文字列で表される。各文字は L(左へ移動)、R(右へ移動)、U(上へ移動)、D(下へ移動)のいずれかである。 高橋君が同じ座標に…
面白かった! 交差数に関する問題に帰着される。 問題へのリンク 問題概要 座標平面上に、4 頂点の座標が であるような長方形があり、その長方形の周上または内部に、 とラベルのついた 個の点がある(どの 2 点も相異なる)。 について、同じラベル の 2 点…
弦が交わるかどうかを判定するという、スタックの典型問題! 問題へのリンク 問題概要 次の図のように、円周上に 個の点 があり、 本の弦がある(図は のとき)。 弦に交差があるかどうかを判定せよ。 制約 考えたこと この問題は stack で解けることで有名…
昔の ABC A 問題はこういうのよくあった! 問題へのリンク 問題概要 3 文字の文字列 が与えられる。これを並び替えることで "ABC" に一致させることができるかどうかを判定せよ。 考えたこと 並び替えて "ABC" に一致する文字列は "ABC" "ACB" "BAC" "BCA" "…
ちょっとした算数・数学の問題! 問題へのリンク 問題概要 考えたこと A, B, C, D, E をそれぞれ 0, 1, 2, 3, 4 と対応させよう(0 始まりにするのがコツ)。このとき、対角線の長さは、対角線の両端に対応する数値の差で表すことができる。 たとえば、線分 …
スタックによるシミュレーション問題! 問題へのリンク 問題概要 整合のとれたカッコ列に対して、英小文字がいくつか挿入されてできる文字列が与えられる (たとえば、"(a(ba))c")。 このような文字列に対して、高橋君が気絶するかどうかを判定したい。次のよ…
探索アプローチでも解けるし、整数論的考察で解くこともできる。 問題へのリンク 問題概要 の倍数であって正の整数であるものをいくつか用意する。 その総和を で割った余りが となることはありうるか? 制約 考えたこと まず、「いくつかの正の の倍数を足…
面白かった!! 実験で思いつけるかもしれないし、気づいたら証明したい系。 問題へのリンク 問題概要 先手と後手が石取りゲームをする。2 個の山があって、最初それぞれ石が 個積まれている。交互に次の操作をする。 2 個以上の石が積まれている山を 1 つ選…
関数 substr() の練習! 問題へのリンク 問題概要 4 文字以上 30 文字以下の文字列 が与えられる。 の末尾 3 文字が "san" であるかどうかを判定せよ。 考えたこと 文字列 の末尾 3 文字は S.substr(S.size() - 3) で取得できる。 これが "san" かどうかを判…
すごく面白かった! 問題へのリンク 問題概要 二次元平面上に点 と という 個の点がある。同一直線上に 3 点が乗ることはない。 の順列 であって、次の条件を満たすものが存在するかどうかを判定し、存在するならば 1 つ示せ。 【条件】 に対して、2 点 , を…
部分和問題。鉄則本の問題なので、コードのみ。 問題へのリンク 問題概要 個の整数 からいくつか選んで、総和を にすることが可能かどうかを判定せよ。 制約 コード #include <bits/stdc++.h> using namespace std; int main() { int N, S; cin >> N >> S; vector<int> A(N); for</int></bits/stdc++.h>…
半分全列挙の典型問題! 問題へのリンク 問題概要 長さが の 4 つの数列が与えられる。これらから要素を 1 個ずつとってきて、総和を にすることが可能か判定せよ。 制約 メモ 「半分全列挙」を用いる。詳細は鉄則本にて。 コード #include <bits/stdc++.h> using namespace</bits/stdc++.h>…
少し実装が重たい全探索問題! 問題へのリンク 問題概要 の白黒グリッド と、 の白黒グリッド が与えられる ()。 グリッド のパターンがグリッド の中に含まれるかどうかを判定せよ。 制約 考えたこと グリッド のすべてのマス について、次の判定をしていけ…
バケットを活用する練習問題! 問題へのリンク 問題概要 AtCoder 王国には 家がある。どこかの家で順に 人の赤子が生まれた。 人目の赤子は家 で生まれ、性別は ('M' または 'F')であった。 各赤子が長男であるかどうかを判定せよ。 制約 考えたこと 人目…
まずは各文字が何回ずつ使われるかを求めよう! 問題へのリンク 問題概要 英小文字のみからなる長さ の文字列 が与えられる。次の条件を満たすかどうかを判定せよ。 【条件】 すべての に対して、 中にちょうど 回登場する文字が 0 種類または 2 種類である…
ちゃんと証明しようとすると、結構大変! 問題へのリンク 問題概要 人の生徒がいて、生徒 の身長は である。 これらの生徒を 2 人ずつ 組に分けて、どの組も身長差が 以下となるようにしたい。 そのようなことが可能かどうかを判定せよ。 制約 考えたこと こ…
とても教育的な問題! ちゃんと解くには、計算量の理解が必要となる問題である。 問題へのリンク 問題概要 3 つの数列 が与えられる。これらの数列に対して、次の 個のクエリに答えよ。 【クエリ】 整数 が与えられるので、 からそれぞれ 1 個ずつ選んで和を…
for 文の練習問題! 問題へのリンク 問題概要 HP が であるモンスターを倒したい。 種類の必殺技を順に使っていく。 種類目の必殺技はモンスターの HP を だけ減らすことができる。 モンスターの HP を 0 以下にすることができるかどうかを判定せよ。 考えた…
簡単な if 文の問題! 問題へのリンク 問題概要 日本では、ツバメは 4 月から 9 月まで観察できる。 1 以上 12 以下の整数 が与えられるので、 月にツバメを観察できるか答えてください。 考えたこと 次のように考えればよい。 のとき:"Yes" そうでないとき…
三平方の定理を思い出そう! 問題へのリンク 問題概要 座標平面上の 3 個の格子点 が与えられる。 これら 3 点 が直角三角形をなすかどうかを判定せよ。 制約 座標値は -1000 以上 1000 以下 考えたこと 3 点 A, B, C が直角三角形をなす条件は のいずれかを…
if 文と、論理演算子の練習! 問題へのリンク 問題概要 あるアトラクションに乗るには、身長が 以上、体重が 以下である必要がある。 身長が 、体重が である高橋君は乗れるか? 考えたこと かつ であるかどうかを判定すればよい。 C++ であれば、論理演算子…
実はとても単純な解法に落とし込めるのだけど、発想がちょっと難しい 問題へのリンク 問題概要 AtCoder 王国の 1 週間は 日あり、最初の 日が休日、後半の 日が平日である。 高橋君は 日分の予定があり、それぞれ 日目に予定がある。 これらの予定日がすべて…
if 文の練習問題 問題へのリンク 問題概要 高橋君の現在のレーティングは 、最高レーティングは である。 高橋君の最高レーティングが 2800 以上であるかどうかを判定せよ。 考えたこと は結局関係ない。 H >= 2800 ならば "o" そうでなければ "x" を出力す…
規則性を発見しよう! この規則は今後セグメントツリーなどを学ぶときにも活用する! 問題へのリンク 問題概要 次の図において、 番目の頂点と 番目の頂点がつながっているかを判定せよ。 考えたこと 図を見ると、次の規則があることがわかる。 番号が であ…
文字列を 個受け取る型式に慣れよう! 問題へのリンク 問題概要 は奇数である。 個の文字列 が与えられる。各文字列は "For" か "Againist" かのいずれかである。 "For" が過半数を占めるかどうかを判定せよ。 制約 は 1 以上 99 以下の奇数 考えたこと 個の…
for 文を回しながら「隣接要素」も同時に見ていく系 問題へのリンク 問題概要 文字 M, F からなる長さ の文字列 が与えられる。 この文字列中に同じ文字が連続している箇所が存在しないならば "Yes"、存在するならば "No" を出力せよ。 考えたこと for 文を…
文字列を for 文で調べる問題 問題へのリンク 問題概要 文字 o, x, - からなる長さ の文字列 が与えられる。次の条件を満たすかどうかを判定せよ。 文字 o を少なくとも 1 つ含む 文字 x を含まない 制約 考えたこと 文字列 の各文字を for 文で走査すること…